কম্পিউটার

স্ট্রিং চেক করার প্রোগ্রামে ধারাবাহিকভাবে ডিসেন্ডিং স্ট্রিং আছে বা পাইথনে নেই


ধরুন আমাদের কিছু সংখ্যা সহ একটি স্ট্রিং s আছে, আমাদের পরীক্ষা করতে হবে এতে ধারাবাহিকভাবে অবতরণকারী পূর্ণসংখ্যা আছে কি না।

সুতরাং, যদি ইনপুটটি s ="99989796" এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ এই স্ট্রিংটি [99,98,97,96] ধরে আছে

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব−

  • একটি ফাংশন হেল্পার() সংজ্ঞায়িত করুন। এটি pos, prev_num

    লাগবে
  • যদি pos n এর মত হয়, তাহলে

    • রিটার্ন ট্রু

  • num_digits :=আগের_সংখ্যার সংখ্যা

  • num_digits - 1 থেকে num_digits রেঞ্জের জন্য, করুন

    • যদি s[index pos থেকে pos+i-1] এবং s-এর সাংখ্যিক রূপ [index pos থেকে pos+i-1]) আগের_সংখ্যা - 1 এর মতই হয়, তাহলে

      • যদি সহায়ক (pos + i, prev_num - 1), তারপর

      • রিটার্ন ট্রু

    • রিটার্ন ফলস

    • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন−

    • n :=s

      এর আকার
    • i এর জন্য রেঞ্জ 1 থেকে n/2 এর ভাগফল, করুন

      • num :=s-এর সাংখ্যিক রূপ [সূচী 0 থেকে i-1]

      • যদি সহায়ক (i, num) সত্য হয়, তাহলে

      • রিটার্ন ট্রু

    • রিটার্ন ফলস

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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. একটি বাক্য পরীক্ষা করার জন্য পাইথন প্রোগ্রাম প্যানগ্রামস কিনা।