मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें जांचना है कि क्या स्ट्रिंग के उपसर्ग (prefix) और प्रत्यय (suffix) उपस्ट्रिंग्स पालिंड्रोम हैं या नहीं।
उदाहरण के लिए, यदि s = "levelishighforracecar" है, तो आउटपुट True होगा क्योंकि पालिंड्रोम उपसर्ग "level" और पालिंड्रोम प्रत्यय "racecar" हैं।
हल करने का तरीका
- l := s की लंबाई
- 2 से l तक लूप चलाकर पहला पालिंड्रोम उपसर्ग ढूंढें
- यदि कोई पालिंड्रोम उपसर्ग नहीं मिला, तो False लौटाएं
- 2 से l तक लूप चलाकर पालिंड्रोम प्रत्यय ढूंढें
- यदि मिला तो True अन्यथा False लौटाएं
उदाहरण कोड
def is_palindrome(s):
return s == s[::-1]
def solve(s):
l = len(s)
for i in range(2, l + 1):
if is_palindrome(s[0:i]):
break
if i == (l + 1):
return False
for i in range(2, l + 1):
if is_palindrome(s[l - i : l]):
return True
return False
s = "levelishighforracecar"
print(solve(s))
इनपुट
"levelishighforracecar"
आउटपुट
True