मान लीजिए, हमें 's' द्वारा निरूपित एक विकल्प दिया गया है। हमें अद्वितीय सबस्ट्रिंग का पता लगाना होगा और आउटपुट के रूप में इन सबस्ट्रिंग की संख्या वापस करनी होगी।
इसलिए, यदि इनपुट s ='prrstvt' जैसा है, तो आउटपुट 26 होगा।
अलग-अलग सबस्ट्रिंग होंगे -
'pr', 'rrs', 'st', 'rr', 'tv', 'rstv', 'stvt', 'prrstv', 'prrstvt', 'rrstvt', 's', 'prrst', 'stv ', 'rrstv', 'rst', 'v', 'tvt', 'rstvt', 'r', 'rs', 'vt', 't', 'prr', 'p', 'rrst', और 'पीआरआरएस'।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- देखा गया :=एक नया नक्शा
- इंडेक्स के प्रत्येक इंडेक्स के लिए, और लेट इन एस में मान करें
- अस्थायी:=एक नया सेट
- अगर विज़िट में ind-1 मौजूद है, तो
- भेजे गए प्रत्येक has_let के लिए[इंड-1], करें
- अस्थायी सूची में जोड़ें(has_let + let)
- भेजे गए प्रत्येक has_let के लिए[इंड-1], करें
- अस्थायी सूची में जोड़ें(चलो)
- विज़िट किया[इंड] :=अस्थायी
- res :=एक नया सेट
- देखे गए प्रत्येक सेट के लिए, करें
- जोड़ें(विज़िट किए गए[सेट]) को फिर से करने के लिए
- रेस का रिटर्न साइज
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(s): visited = dict() for ind, let in enumerate(s): temp = set() if ind-1 in visited: for has_let in visited[ind-1]: temp.add(has_let+let) temp.add(let) visited[ind] = temp res = set() for sets in visited: res.update(visited[sets]) return len(res) print(solve('prrstvt'))
इनपुट
'prrstvt'
आउटपुट
26