मान लीजिए कि हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं। कभी-कभी, जब हम कोई स्वर टाइप करते हैं, तो कुंजी लंबे समय तक दबाई जा सकती है, और स्वर 1 या अधिक बार दोहराया जाएगा। हमें यह जांचना होगा कि क्या यह संभव है कि t टाइप किया गया है जो s को इंगित करता है या नहीं।
इसलिए, यदि इनपुट s ="mine" t ="miiine" जैसा है, तो आउटपुट सही होगा क्योंकि स्वर 'i' को तीन बार दोहराया जाता है, अन्य अक्षर ठीक होते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- s_len :=s का आकार
- t_len :=t का आकार
- j :=0
- मैं के लिए 0 से s_len -1 की सीमा में, करो
- यदि s[i] t[j] के समान नहीं है, तो
- झूठी वापसी
- यदि s[i] स्वर नहीं है, तो
- j :=j + 1
- अगले पुनरावृत्ति के लिए जाएं
- cnt_1 :=1
- जबकि मैं
- cnt_1 :=cnt_1 + 1
- i :=i + 1
- यदि s[i] t[j] के समान नहीं है, तो
- cnt_2 :=1
- जबकि j
- cnt_2 :=cnt_2 + 1
- j :=j + 1
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def isVowel(c): vowel = "aeiou" return c in vowel def solve(s, t): s_len = len(s) t_len = len(t) j = 0 for i in range(s_len): if s[i] != t[j]: return False if isVowel(s[i]) == False: j = j + 1 continue cnt_1 = 1 while i < s_len - 1 and (s[i] == s[i + 1]): cnt_1 = cnt_1 + 1 i = i + 1 cnt_2 = 1 while j < t_len - 1 and t[j] == s[i]: cnt_2 = cnt_2 + 1 j = j + 1 if cnt_1 > cnt_2: return False return True s = "mine" t = "miiine" print(solve(s, t))
इनपुट
"mine", "miiine"
आउटपुट
True