मान लीजिए कि हमारे पास दो तार s और t हैं। हम टी बनाना चाहते हैं, लेकिन कीबोर्ड में कुछ समस्याएं हैं जहां कुछ अक्षर अटक जाते हैं इसलिए उन्हें 1 या अधिक बार लिखा जा सकता है। हमें यह जांचना होगा कि क्या यह संभव है कि टाइप किया गया s t लिखने के लिए था या नहीं।
इसलिए, यदि इनपुट s ="appppleee" t ="apple" जैसा है, तो आउटपुट ट्रू होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- i :=0, j :=0
- s_len :=s का आकार
- t_len :=t का आकार
- t_last:=खाली स्ट्रिंग
- जबकि j
- अगर मैं s_len के समान हूं, तो
- झूठी वापसी
- यदि s[i] t[j] के समान है, तो
- t_last :=t[j]
- i :=i + 1
- j :=j + 1
- अन्यथा जब s[i] t_last के समान हो, तब
- i :=i + 1
- अन्यथा,
- झूठी वापसी
- अगर मैं s_len के समान हूं, तो
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(s, t): i = j = 0 s_len = len(s) t_len = len(t) t_last = "" while j < t_len: if i == s_len: return False if s[i] == t[j]: t_last = t[j] i += 1 j += 1 elif s[i] == t_last: i += 1 else: return False if i < s_len: return all(char == t_last for char in s[i:]) else: return True s = "appppleee" t = "apple" print(solve(s, t))
इनपुट
"appppleee", "apple"
आउटपुट
True