मान लीजिए कि हमारे पास एक स्ट्रिंग s है। हमें s के अक्षरों के सभी संभावित संयोजनों को खोजना है। यदि वर्णों के एक ही सेट के साथ दो तार हैं, तो उनमें से सबसे छोटी शब्दावली दिखाएं। और एक बाधा यह है कि s में प्रत्येक वर्ण अद्वितीय है।
इसलिए, यदि इनपुट s ="pqr" जैसा है, तो आउटपुट ['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- st_arr :=एक नई सूची
- s - 1 से 0 के श्रेणी आकार में i के लिए, 1 से घटाएं
- जे के लिए 0 से लेकर st_arr-1 के आकार तक के लिए
- st_arr के अंत में
- सम्मिलित करें (s[i] st_arr[j] को संयोजित करें)
- st_arr के अंत में s[i] डालें
- जे के लिए 0 से लेकर st_arr-1 के आकार तक के लिए
- st_arr लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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']