मान लीजिए हमारे पास एक संख्या n है। हमें यह जांचना है कि क्या हम उस संख्या से एक वर्णमाला लोअरकेस स्ट्रिंग बना सकते हैं और जांच सकते हैं कि स्ट्रिंग पालिंड्रोम है या नहीं। यहां हम केवल a से j तक के वर्ण लेंगे, [a = 0, b = 1... j = 9]। इसलिए यदि संख्या 42 है तो उपस्ट्रिंग "ec" को 6 (4+2) वर्णों तक प्रिंट किया जाएगा "ececec" फिर जांचें कि यह पालिंड्रोम है या नहीं।
तो, यदि इनपुट n = 43 है, तो आउटपुट True होगा क्योंकि स्ट्रिंग "ededede" है और यह पालिंड्रोम है।
हल करने के चरण
- temp := खाली स्ट्रिंग
- s := n को स्ट्रिंग के रूप में
- letters := a से j तक के सभी वर्ण
- sum := 0
- substr := खाली स्ट्रिंग
- रेंज 0 से s के आकार - 1 तक के लिए i, करें:
- d := s[i] को संख्यात्मक अंक के रूप में
- substr := substr concatenate letters[d]
- sum := sum + d
- जब तक temp का आकार <= sum, तब तक:
- temp := temp concatenate substr
- temp := temp[इंडेक्स 0 से sum - 1 तक]
- temp के पालिंड्रोम होने पर true लौटाएं, अन्यथा false
उदाहरण
def isPalindrome(s):
return s == s[::-1]
def solve(n):
temp = ""
s = str(n)
letters = "abcdefghij"
sum = 0
substr = ""
for i in range(len(s)):
d = int(s[i])
substr += letters[d]
sum += d
while len(temp) <= sum:
temp += substr
temp = temp[:sum]
return isPalindrome(temp)
n = 43
print(solve(n))
इनपुट
43
आउटपुट
True