ধরুন আমরা একটি স্ট্রিং s আছে. আমাদের s-এর অক্ষরের সব সম্ভাব্য সমন্বয় খুঁজে বের করতে হবে। যদি একই অক্ষরের সেট সহ দুটি স্ট্রিং থাকে, তবে তাদের মধ্যে অভিধানগতভাবে সবচেয়ে ছোটটি দেখান। এবং একটি সীমাবদ্ধতা হল s-এর প্রতিটি অক্ষর অনন্য।
সুতরাং, যদি ইনপুটটি s ="pqr" এর মত হয়, তাহলে আউটপুট হবে ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- st_arr :=একটি নতুন তালিকা
- s - 1 থেকে 0 এর পরিসরে i এর জন্য, 1 দ্বারা হ্রাস করুন, করুন
- j-এর জন্য 0 থেকে st_arr - 1-এর মাপ, করুন
- st_arr এর শেষে সন্নিবেশ (s[i] concatenate st_arr[j])
- st_arr এর শেষে s[i] ঢোকান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(s): st_arr = [] for i in range(len(s)-1,-1,-1): for j in range(len(st_arr)): st_arr.append(s[i]+st_arr[j]) st_arr.append(s[i]) return st_arr s = "pqr" print(solve(s))
ইনপুট
"pqr"
আউটপুট
['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']