Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: रिकर्सन का उपयोग करके जांचें कि सरणी पैलिंड्रोम है या नहीं

पैलिंड्रोम सरणी

एक सरणी पैलिंड्रोम होती है यदि यह आगे और पीछे से समान पढ़ी जाए।

उदाहरण: {1, 2, 3, 2, 1} ✓, {1, 0, 0, 1} ✓, {1, 2, 3, 4} ✗

रिकर्सिव दृष्टिकोण

  1. आधार मामला: यदि start >= end → पैलिंड्रोम (true)
  2. जांच: यदि arr[start] != arr[end] → पैलिंड्रोम नहीं (false)
  3. रिकर्सन: start+1 और end-1 के साथ कॉल करें

C प्रोग्राम

#include <stdio.h>
#include <stdbool.h>

bool is_palindrome(int arr[], int start, int end) {
    // आधार मामला
    if (start >= end)
        return true;
    
    // बेमेल जांचें
    if (arr[start] != arr[end])
        return false;
    
    // आंतरिक उप-सरणी के लिए रिकर्सन
    return is_palindrome(arr, start + 1, end - 1);
}

int main() {
    int arr[] = {1, 2, 0, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    printf("सरणी: ");
    for (int i = 0; i < n; i++) printf("%d ", arr[i]);
    printf("\n");
    
    if (is_palindrome(arr, 0, n - 1))
        printf("हाँ, सरणी पैलिंड्रोम है\n");
    else
        printf("नहीं, सरणी पैलिंड्रोम नहीं है\n");
    
    return 0;
}

आउटपुट

सरणी: 1 2 0 2 1
हाँ, सरणी पैलिंड्रोम है

ट्रेस उदाहरण

is_palindrome([1,2,0,2,1], 0, 4)
  arr[0]==arr[4]? 1==1 ✓
  is_palindrome([1,2,0,2,1], 1, 3)
    arr[1]==arr[3]? 2==2 ✓
    is_palindrome([1,2,0,2,1], 2, 2)
      start >= end → true
    → true
  → true
→ true

पुनरावृत्तीय संस्करण (तुलना)

bool is_palindrome_iterative(int arr[], int n) {
    for (int i = 0, j = n - 1; i < j; i++, j--) {
        if (arr[i] != arr[j])
            return false;
    }
    return true;
}

जटिलता तुलना

पहलूरिकर्सिवपुनरावृत्तीय
समयO(n)O(n)
स्थानO(n) स्टैकO(1)
पठनीयताउच्चमध्यम
स्टैक ओवरफ्लो जोखिमहाँ (बड़े n के लिए)नहीं

स्ट्रिंग पैलिंड्रोम (बोनस)

bool is_string_palindrome(char str[], int start, int end) {
    if (start >= end) return true;
    if (str[start] != str[end]) return false;
    return is_string_palindrome(str, start + 1, end - 1);
}
  1. C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय) C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय)

    पैलिंड्रोम सरणी एक सरणी पैलिंड्रोम है यदि यह आगे और पीछे से समान पढ़ी जाती है। उदाहरण सरणीपैलिंड्रोम? {1, 0, 0, 1}हाँ {1, 2, 3, 4, 5}नहीं {7}हाँ (एकल तत्व) {}हाँ (खाली) {1, 2, 2, 1}हाँ {1, 2, 3, 2, 1}हाँ पुनरावृत्तीय एल्गोरिदम दो पॉइंटर्स: start = 0, end = n-1 जब तक start < end: यदि ar

  1. C++ में STL का उपयोग करके जांचें कि क्या सरणी पैलिंड्रोम है या नहीं C++ में STL का उपयोग करके जांचें कि क्या सरणी पैलिंड्रोम है या नहीं

    n पूर्णांकों की एक सरणी arr[n] दी गई है, कार्य यह जांचना है कि क्या सरणी एक पैलिंड्रोम है या नहीं। हमें C++ में STL (स्टैंडर्ड टेम्पलेट लाइब्रेरी) का उपयोग करके यह कार्य करना है। C++ में STL (Standard Template Library) की एक विशेषता है, यह C++ टेम्पलेट कक्षाओं का एक समूह है जिसका उपयोग डेटा संरचना

  1. - पायथन प्रोग्राम जांचने के लिए कि कोई स्ट्रिंग पैलिंड्रोम है या नहीं

    एक स्ट्रिंग दी गई है, हमारा कार्य यह जांचना है कि यह स्ट्रिंग पैलिंड्रोम है या नहीं। एल्गोरिदम चरण 1: इनपुट के रूप में स्ट्रिंग दर्ज करें। चरण 2: स्ट्रिंग स्लाइसिंग का उपयोग करके स्ट्रिंग को उल्टा करें और इसकी तुलना मूल स्ट्रिंग से करें। चरण 3: फिर परिणाम प्रदर्शित करें। उदाहरण कोड my_string = inpu