मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हम t बनाना चाहते हैं, लेकिन कीबोर्ड में कुछ समस्याएं हैं जहां कुछ वर्ण अटके हुए हैं इसलिए वे 1 या अधिक बार लिखे जा सकते हैं। हमें जांचना है कि क्या टाइप की गई s का मतलब t लिखना था या नहीं।
इसलिए, यदि इनपुट है s = "appppleee", t = "apple", तो आउटपुट होगा True।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
i := 0, j := 0s_len := sका आकारt_len := tका आकारt_last :=खाली स्ट्रिंग- जब
j < t_len, करें:- यदि
is_lenके समान है, तो:Falseलौटाएं
- यदि
s[i]t[j]के समान है, तो:t_last := t[j]i := i + 1j := j + 1
- अन्यथा जब
s[i]t_lastके समान है, तो:i := i + 1
- अन्यथा:
Falseलौटाएं
- यदि
- यदि
i < s_len, तो:- सत्य लौटाएं यदि
s[इंडेक्स i से अंत तक]में सभी वर्णt_lastके समान हैं
- सत्य लौटाएं यदि
- अन्यथा:
Trueलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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