কম্পিউটার

লেক্সিকোগ্রাফিক ক্রমে একটি স্ট্রিং খুঁজুন যা পাইথনে প্রদত্ত দুটি স্ট্রিংয়ের মধ্যে রয়েছে


ধরুন আমাদের দুটি স্ট্রিং S এবং T আছে, আমাদের পরীক্ষা করতে হবে একই দৈর্ঘ্যের একটি স্ট্রিং যা অভিধানগতভাবে S এর থেকে বড় এবং T এর থেকে ছোট। যদি এমন কোনো স্ট্রিং পাওয়া না যায় তাহলে আমাদের -1 ফিরতে হবে। আমাদের মনে রাখতে হবে যে S =S1S2… Sn কে অভিধানিকভাবে T =T1T2 থেকে কম বলা হয়… Tn, যদি সেখানে একটি i থাকে, যাতে S1=T1, S2=T2, … Si – 1=Ti – 1, Si

সুতরাং, যদি ইনপুটটি S ="bbb" এবং T ="ddd" এর মত হয়, তাহলে আউটপুট হবে "bbc"

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

  • n :=স্ট্রিংয়ের আকার
  • n - 1 থেকে 0 রেঞ্জের i এর জন্য, 1 কমিয়ে
      করুন
    • যদি স্ট্রিং[i] 'z'-এর মতো না হয়, তাহলে
      • k :=(স্ট্রিং[i]) এর ASCII
      • স্ট্রিং[i] :=ASCII থেকে অক্ষর (k + 1)
      • স্ট্রিং অক্ষর যোগ করুন এবং ফিরে আসুন
    • স্ট্রিং[i] :='a'

উদাহরণ

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

def find_next(string):
   n = len(string)
   for i in range(n - 1, -1, -1):
      if string[i] != 'z':
         k = ord(string[i])
         string[i] = chr(k + 1)
         return ''.join(string)
      string[i] = 'a'
S = "bbb"
T = "ddd"
S = list(S)
res = find_next(S)
if res != T:
   print(res)
else:
   print(-1)

ইনপুট

"bbb", "ddd"

আউটপুট

bbc

  1. দুটি স্ট্রিং থেকে অস্বাভাবিক শব্দ খুঁজে পেতে পাইথন প্রোগ্রাম

  2. বর্ণানুক্রমিকভাবে দুটি স্ট্রিংয়ের সাধারণ অক্ষর মুদ্রণের জন্য পাইথন কোড

  3. পাইথনে একটি প্রদত্ত স্ট্রিংয়ের সমস্ত সম্ভাব্য স্থানান্তরগুলি কীভাবে খুঁজে পাবেন?

  4. পাইথনে একটি একক স্ট্রিং রূপান্তর করতে দুটি স্ট্রিং কিভাবে যোগদান করবেন?