Cho tên gốc và chuỗi gõ. Kiểm tra chuỗi gõ có phải là tên bị nhấn phím lâu (long-pressed) không. Có thể có ký tự lặp thêm nhưng không được thiếu ký tự.
Input: "Amit", "Ammittt" -> true "Amit", "Ammttt" -> false (thiếu 'i')
Giải pháp: Hai con trỏ. Duyệt chuỗi gõ, khớp với tên gốc. Nếu khớp, tiến con trỏ tên. Cuối cùng kiểm tra đã duyệt hết tên gốc chưa.
Chương trình minh họa
#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();
}
};
int main(){
Solution ob;
string res = ob.isLongPressedName("Amit", "Ammittt") ? "true" : "false";
cout << res;
return 0;
}
Kết quả
true