কম্পিউটার টিউটোরিয়াল

পাইথনে দেওয়া সংখ্যা N থেকে প্যালিনড্রোম স্ট্রিং তৈরি করা সম্ভব কিনা তা যাচাই করা

মান লিজিয়ে আমাদের একটি সংখ্যা n আছে। আমাদের যাচাই করতে হবে সেটি থেকে একটি বর্ণানুক্রমিক লোয়ারকেস স্ট্রিং (alphabetical lowercase string) তৈরি করা সম্ভব কিনা এবং সেটি প্যালিনড্রোম (palindrome) কিনা। এখানে আমরা শুধু a থেকে j পর্যন্ত ক্যারেক্টার নেব, [a = 0, b = 1... j = 9]। তাই যদি সংখ্যা ৪২ হয় তবে সাবস্ট্রিং "ec" প্রিন্ট হবে ৬ (৪+২) ক্যারেক্টর পর্যন্ত "ececec" তারপর চেক করব এটি প্যালিনড্রোম কিনা।

যেমন, ইনপুট যদি n = 43 হয়, তবে আউটপুট হবে True কারণ স্ট্রিং হবে "ededede" যা প্যালিনড্রোম।

সমাধানের ধাপসমূহ

  • temp := খালি স্ট্রিং
  • s := n স্ট্রিং হিসেবে
  • letters := a থেকে j পর্যন্ত সব ক্যারেক্টার
  • sum := 0
  • substr := খালি স্ট্রিং
  • i ০ থেকে s-এর সাইজ - ১ পর্যন্ত, করুন:
    • d := s[i]-কে নামেরিক ডিজিট (numeric digit) হিসেবে নিন
    • substr := substr + letters[d]
    • sum := sum + d
  • যখন temp-এর সাইজ sum-এর চেয়ে ছোট বা সমান, করুন:
    • temp := temp + substr
  • temp := temp[0 থেকে sum - 1] ইনডেক্স পর্যন্ত
  • true রিটার্ন করুন যখন temp প্যালিনড্রোম, অন্যথায় 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
  1. দেওয়া স্ট্রিংটি ভয়েল প্যালিনড্রোম কিনা চেক করার পাইথন প্রোগ্রাম

  2. পাইথনে স্ট্রিং নাম্বার প্যালিনড্রোম কিনা চেক করা

  3. পাইথনে প্যালিনড্রোম স্ট্রিং চেক করা

  4. পাইথন প্রোগ্রাম: দেওয়া স্ট্রিং থেকে সকল সম্ভাব্য বৈধ IP ঠিকানা জেনারেট করা