ধরুন আমাদের দুটি স্ট্রিং 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"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
করুন
উদাহরণ
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