मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं, हमें s के लिए t को s का सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की मात्रा ढूंढनी है। अब, प्रत्येक संक्रिया में, हम s में किसी भी स्थिति को चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं।
उदाहरण के लिए, यदि इनपुट है s = "abbpqr", t = "bbxy", तो आउटपुट होगा 2, क्योंकि हम सबस्ट्रिंग "bbpq" ले सकते हैं और 'p' को 'x' में और 'q' को 'y' में बदल सकते हैं।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- k := t का आकार, n := s का आकार
- ans := 10^10
- i के लिए 0 से n - k तक की रेंज में, करें
- ss := s[इंडेक्स i से i+k-1 तक] का सबस्ट्रिंग
- ans := ans और s और t के बेमेल वर्णों की संख्या का न्यूनतम
- ans वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
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