একটি অ্যালফানিউমেরিক স্ট্রিং দেওয়া থাকে। কেস ইনসেনসিটিভভাবে এবং নন-অ্যালফানিউমেরিক ক্যারেক্টার উপেক্ষা করে এটি প্যালিনড্রোম কিনা যাচাই করতে হবে। উদাহরণ: "A Man, a Plan, a Canal: Panama" → "amanaplanacanalpanama" যা প্যালিনড্রোম।
সমাধানের পদ্ধতি
- খালি স্ট্রিং
x = ""নিন। - প্রতিটি ক্যারেক্টার
cজন্য:- যদি লোয়ারকেস লেটার বা ডিজিট হয়,
x += c। - যদি আপারকেস লেটার হয়, লোয়ারকেসে রূপান্তর করে
x += c।
- যদি লোয়ারকেস লেটার বা ডিজিট হয়,
x == x[::-1]চেক করুন।
উদাহরণ কোড
class Solution(object):
def isPalindrome(self, s):
x = ""
diff = ord('a') - ord('A')
for i in s:
if ord(i) >= ord('a') and ord(i) <= ord('z') or ord(i) >= ord("0") and ord(i) <= ord("9"):
x += i
elif ord(i) >= ord('A') and ord(i) <= ord('Z'):
i = chr(diff + ord(i))
x += i
return x == x[::-1]
ob1 = Solution()
print(ob1.isPalindrome("A Man, a Plan, a Canal: Panama"))
ইনপুট
s = "A Man, a Plan, a Canal: Panama"
আউটপুট
true