समस्या
text के लिए यह तय करें कि वह पालिंड्रोम है या नहीं, केवल अक्षरों और अंकों को ध्यान में रखते हुए और केस की अनदेखी करते हुए।
is_palindrome(text) को इम्प्लीमेंट करें।
इनपुट
text: जांचने के लिए टेक्स्ट (ASCII कैरेक्टर्स)।
आउटपुट
अगर टेक्स्ट पालिंड्रोम है तो true लौटाएँ, अन्यथा false लौटाएँ।
सीमाएँ
0 ≤ length ≤ 10,000
उदाहरण
इनपुट:
text = "Racecar"
अपेक्षित आउटपुट:
expected = True
इनपुट:
std::string text = "Racecar";
अपेक्षित आउटपुट:
bool expected = true;
इनपुट:
string text = "Racecar";
अपेक्षित आउटपुट:
bool expected = true;
व्याख्या
छोटे अक्षरों में "racecar" दोनों ओर से एक जैसा पढ़ा जाता है।
इनपुट:
text = "hello"
अपेक्षित आउटपुट:
expected = False
इनपुट:
std::string text = "hello";
अपेक्षित आउटपुट:
bool expected = false;
इनपुट:
string text = "hello";
अपेक्षित आउटपुट:
bool expected = false;
व्याख्या
"hello" को उल्टा पढ़ने पर "olleh" मिलता है, जो अलग है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Compare करने से पहले जो letter या digit नहीं है, उसे ignore करो।
संकेत 2
दोनों सिरों से अंदर की तरफ बढ़ो और case-insensitive characters compare करो।
संकेत 3
Punctuation और spaces को carefully skip करो ताकि valid palindromes न टूटें।
अपेक्षित जटिलता
समय O(n), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।