चुनौतियों पर वापस जाएँ
मध्यम 0 हल किए गए 0% स्वीकृति

रिकर्सिव पैलिंड्रोम

केस और विराम चिह्नों की अनदेखी करते हुए, पैलिंड्रोम को रिकर्सिव तरीके से जांचें।

आप क्या सीखेंगे

  • रिकर्शन से पैलिंड्रोम जाँचना
  • अक्षर आकार और विराम चिह्न अनदेखा करना
  • समस्या को दोनों सिरों से छोटा करना

समस्या

text क्या आगे से और पीछे से एक जैसा पढ़ा जाता है, यह तय करें, केवल अक्षर और अंक को ध्यान में रखते हुए और केस की अनदेखी करते हुए। इसे रिकर्सिव तरीके से हल करें: बाहरी अक्षरों की तुलना करें, फिर अंदर के हिस्से को जांचें।

is_palindrome_recursive(text) को इम्प्लीमेंट करें।

इनपुट

text: जांचने के लिए टेक्स्ट (ASCII कैरेक्टर्स)।

आउटपुट

अगर पैलिंड्रोम है तो true लौटाएँ, अन्यथा false।

सीमाएँ

0 ≤ length ≤ 1,000

उदाहरण

उदाहरण 1
इनपुट:
text = "Never odd or even"

अपेक्षित आउटपुट:
expected = True
इनपुट:
std::string text = "Never odd or even";

अपेक्षित आउटपुट:
bool expected = true;
इनपुट:
string text = "Never odd or even";

अपेक्षित आउटपुट:
bool expected = true;

व्याख्या

सिर्फ अक्षर, लोअरकेस में: "neveroddoreven" दोनों तरफ से एक जैसा पढ़ा जाता है।

उदाहरण 2
इनपुट:
text = "code"

अपेक्षित आउटपुट:
expected = False
इनपुट:
std::string text = "code";

अपेक्षित आउटपुट:
bool expected = false;
इनपुट:
string text = "code";

अपेक्षित आउटपुट:
bool expected = false;

व्याख्या

"c" और "e" अलग हैं, इसलिए यह पैलिंड्रोम नहीं है।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Compare करने से पहले non-letter और non-digit characters skip करो।

संकेत 2

पहले बाहरी characters compare करो, फिर बाकी middle हिस्से पर recurse करो।

संकेत 3

Empty और single-character cleaned substrings को palindrome मानो।

अपेक्षित जटिलता

समय O(n), अतिरिक्त स्थान O(n)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।