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

পাইথনে স্ট্রিংতে কনsekutিভ ডিসেন্ডিং ইন্টিজার আছে কিনা যাচাই করার প্রোগ্রাম


মনে করুন s একটি ডিজিট ধারণকারী স্ট্রিং। এতে কনsekutিভ ডিসেন্ডিং ইন্টিজার আছে কিনা যাচাই করতে হবে।

উদাহরণস্বরূপ, "99989796" হলে আউটপুট True (৯৯,৯৮,৯৭,৯৬)।

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

  • helper(pos, prev_num) ফাংশন সংজ্ঞায়িত করুন
    • যদি pos == n, True ফেরত দিন
    • num_digits := prev_num-এর ডিজিট কাউন্ট
    • i = num_digits-1 থেকে num_digits পর্যন্ত,
      • যদি s[pos:pos+i] এবং এর মান == prev_num-1, helper(pos+i, prev_num-1) কল করুন
    • False ফেরত দিন
  • মূল মেথড থেকে: n := len(s), i = 1 থেকে n//2 পর্যন্ত, num = int(s[:i]), helper(i, num) True হলে True ফেরত দিন, শেষে False ফেরত দিন

উদাহরণ

class Solution:
    def solve(self, s):
        n = len(s)
        def helper(pos, prev_num):
            if pos == n:
                return True
            num_digits = len(str(prev_num))
            for i in range(num_digits - 1, num_digits + 1):
                if s[pos:pos+i] and int(s[pos:pos+i]) == prev_num - 1:
                    if helper(pos + i, prev_num - 1):
                        return True
            return False
        for i in range(1, n//2 + 1):
            num = int(s[:i])
            if helper(i, num):
                return True
        return False

ob = Solution()
s = "99989796"
print(ob.solve(s))

ইনপুট

"99989796"

আউটপুট

True
  1. দেওয়া স্ট্রিংটি পাইথন কিওয়ার্ড কিনা চেক করার প্রোগ্রাম

  2. পাইথনে স্ট্রিং খালি কিনা চেক করা

  3. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  4. পাইথনে বাক্য প্যাংগ্রাম (pangram) কিনা যাচাই করার প্রোগ্রাম