मान लीजिए एक आदमी कीबोर्ड पर कुछ नाम टाइप कर रहा है। कभी-कभी कुछ बटन गलती से लंबे समय तक दबे रह जाते हैं। तो यह एक या अधिक अतिरिक्त वर्ण टाइप कर सकता है। इसलिए हम दो स्ट्रिंग लेंगे, और जांचेंगे कि दूसरी स्ट्रिंग लॉन्ग-प्रेस्ड नाम है या नहीं। इसलिए यदि नाम "Amit" है, और दूसरी स्ट्रिंग "Ammittt" है तो यह लॉन्गप्रेस्ड नाम है। लेकिन "Ammttt" नहीं है, क्योंकि वर्ण i यहां मौजूद नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- let j := 0
- for i := 0, i < second.size, i को 1 से बढ़ाएं -
- यदि j < actual_name.size और actual_name[j] = second[i], तो j को 1 से बढ़ाएं
- जब j = actual_name.size हो तो true वापस करें, अन्यथा false
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; class Solution { public: bool isLongPressedName(string name, string typed) { int j = 0; for(int i = 0; i < typed.size(); i++){ if(j < name.size() && name[j] == typed[i])j++; } return j == name.size(); } }; main(){ Solution ob; string res = ob.isLongPressedName("Amit", "Ammittt") ? "true" : "false"; cout << res; } इनपुट
"Amit" "Ammittt"
आउटपुट
true