สมมติว่าชายคนหนึ่งกำลังพิมพ์ชื่อบนแป้นพิมพ์ บางครั้งปุ่มบางปุ่มถูกกดค้างไว้โดยไม่ได้ตั้งใจ ดังนั้นจึงอาจพิมพ์อักขระพิเศษได้ตั้งแต่หนึ่งตัวขึ้นไป ดังนั้นเราจะเอาสองสตริงและตรวจสอบว่าสตริงที่สองเป็นชื่อแบบยาวหรือไม่ ดังนั้นหากชื่อ "Amit" และสตริงที่สองคือ "Ammitt" จะเป็นชื่อแบบยาว แต่ “Ammttt” ไม่ใช่เพราะไม่มีตัวละครฉันอยู่ที่นี่
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ให้ j :=0
- สำหรับ i :=0, i
- ถ้า j
- ถ้า j
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#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