मान लीजिए कि हमारे पास दो तार s और t हैं, हमें t को s का विकल्प बनाने के लिए s के लिए आवश्यक न्यूनतम संक्रियाएँ ज्ञात करनी होंगी। अब, प्रत्येक ऑपरेशन में, हम s में कोई भी स्थिति चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं।
इसलिए, यदि इनपुट s ="abbpqr", t ="bbxy" जैसा है, तो आउटपुट 2 होगा, क्योंकि हम सबस्ट्रिंग "bbpq" ले सकते हैं और 'p' को 'x' और 'q' को 'में बदल सकते हैं। वाई'।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- k:=t का आकार, n:=s का आकार
- उत्तर:=10^10
- मैं के लिए 0 से n - k की सीमा में, करते हैं
- ss:=s का सबस्ट्रिंग [इंडेक्स i से i+k-1]
- Ans :=न्यूनतम उत्तर और s और t के बेजोड़ वर्णों की संख्या
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, s, t): k, n = len(t), len(s) ans = 10**10 for i in range(n - k + 1): ss = s[i:i+k] ans = min(ans, sum(ss[j]!=t[j] for j in range(k))) return ans ob = Solution() print(ob.solve("abbpqr", "bbxy"))
इनपुट
"abbpqr", "bbxy"
आउटपुट
2