समस्या
text क्या आगे से और पीछे से एक जैसा पढ़ा जाता है, यह तय करें, केवल अक्षर और अंक को ध्यान में रखते हुए और केस की अनदेखी करते हुए। इसे रिकर्सिव तरीके से हल करें: बाहरी अक्षरों की तुलना करें, फिर अंदर के हिस्से को जांचें।
is_palindrome_recursive(text) को इम्प्लीमेंट करें।
इनपुट
text: जांचने के लिए टेक्स्ट (ASCII कैरेक्टर्स)।
आउटपुट
अगर पैलिंड्रोम है तो true लौटाएँ, अन्यथा false।
सीमाएँ
0 ≤ length ≤ 1,000
उदाहरण
इनपुट:
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" दोनों तरफ से एक जैसा पढ़ा जाता है।
इनपुट:
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 के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।