ধরুন আমাদের একটি সংখ্যা n আছে; আমাদের এন+1 দৈর্ঘ্যের একটি ছোট হাতের স্ট্রিং পরীক্ষা করতে হবে যাতে যেকোনো অবস্থানে থাকা অক্ষরটি তার অবিলম্বে পরবর্তী অক্ষরের চেয়ে অভিধানগতভাবে বড় হয়।
সুতরাং, যদি ইনপুট 15 এর মত হয়, তাহলে আউটপুট হবে ponmlkjihgfedcba।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- temp_str :=ফাঁকা স্ট্রিং
- অতিরিক্ত :=n মোড 26
- যদি অতিরিক্ত>=1 হয়, তাহলে
- আমি 26 -(অতিরিক্ত + 1) থেকে 25 রেঞ্জের জন্য, কর
- temp_str :=temp_str + str[i]
- গণনা :=n / 26 (পূর্ণসংখ্যা বিভাগ)
- আমি রেঞ্জ 1-এ + 1 গণনা করার জন্য, কর
- 0 থেকে 25 রেঞ্জে j-এর জন্য
- করুন
- temp_str :=temp_str + str[j]
- করুন
- আমি 26 -(অতিরিক্ত + 1) থেকে 25 রেঞ্জের জন্য, কর
- রিটার্ন temp_str
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def show_string(n, str): temp_str = "" extra = n % 26 if (extra >= 1) : for i in range( 26 - (extra + 1), 26): temp_str += str[i] count = n // 26 for i in range(1, count + 1) : for j in range(26): temp_str += str[j] return temp_str n = 15 str = "zyxwvutsrqponmlkjihgfedcba" print(show_string(n, str))
ইনপুট
15
আউটপুট
ponmlkjihgfedcba