मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें यह जांचना है कि दी गई स्ट्रिंग कोलिंड्रोम (colindrome) है या नहीं। कोलिंड्रोम 6 लंबाई के पैलिंड्रोम्स का संयोजित (concatenated) स्ट्रिंग है।
उदाहरण के लिए, यदि इनपुट s = "aabbaamnoonm" है, तो आउटपुट True होगा क्योंकि इसमें "aabbaa" और "mnoonm" जैसे पैलिंड्रोम्स हैं, दोनों की लंबाई 6 है।
समाधान दृष्टिकोण
स्ट्रिंग की लंबाई 6 का गुणक होनी चाहिए। फिर हम इसे 6-6 अक्षरों के खंडों में बांटते हैं और प्रत्येक खंड की जांच करते हैं कि वह पैलिंड्रोम है या नहीं।
एल्गोरिदम चरण:
- यदि
len(s) % 6 != 0, तो False लौटाएं iको 0 सेlen(s)-1तक 6 की वृद्धि से बढ़ाएं:- यदि
s[i:i+6]पैलिंड्रोम नहीं है, तो False लौटाएं - True लौटाएं
पायथन कार्यान्वयन
def is_palindrome(s):
return s == s[::-1]
def solve(s):
if len(s) % 6 != 0:
return False
for i in range(0, len(s), 6):
if not is_palindrome(s[i:i+6]):
return False
return True
s = "aabbaamnoonm"
print(solve(s)) # True
इनपुट
"aabbaamnoonm"
आउटपुट
True
व्याख्या:
स्ट्रिंग "aabbaamnoonm" (लंबाई 12) को दो भागों में बांटते हैं:
s[0:6] = "aabbaa"→ रिवर्स: "aabbaa" ✓ पैलिंड्रोमs[6:12] = "mnoonm"→ रिवर्स: "mnoonm" ✓ पैलिंड्रोम
दोनों 6-लंबाई के पैलिंड्रोम हैं, इसलिए यह कोलिंड्रोम है।