Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra tên bị nhấn phím lâu (Long Pressed Name) trong C++


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