旧键盘
題目背景
小明的鍵盤使用年限長,輸入時鍵盤的按鍵時不時會有粘滯。出現(xiàn)粘滯情況時,上一個被按下的按鍵會被長按,而字符可能被輸入一次或多次。
題目描述
給出小明將要輸入的字符串s,和小明實際輸入的字符串t,請你判斷小明實際輸入的字符串t是否對應(yīng)s,即使出現(xiàn)鍵盤粘滯情況。
輸入格式
第一行輸入字符串s,第二行輸入字符串t。
輸出格式
如果t對應(yīng)s(t中某些字符被長按)輸出yes,否則輸出no。
說明/提示
對于樣例1,l和i被長按。
對于樣例2,b被少按了一次。
對于樣例3,t沒有被長按
s.length <= 1000
t.length <= 1000
s 和 t 的字符都是小寫字母。
解題思路:
不難想到,因為小明是想要輸對數(shù)的,只是鍵盤不太給力,所以他不會隨便輸其他字母,所以其實這題,可以簡單的發(fā)現(xiàn),小明輸入的某個字母如果少于實際要輸?shù)淖帜?#xff0c;就一定是不符題意的,故統(tǒng)計字母出現(xiàn)次數(shù),對比一下就行了。
代碼如下:
#include <iostream> #include <cstring> using namespace std; string a, b; const int N = 1010; int cnt1[N], cnt2[N];int main() {cin >> a >> b;for (int i = 0; i < a.length(); i++) {cnt1[a[i] - 'a' + 1]++;}for (int i = 0; i < b.length(); i++) {cnt2[b[i] - 'a' + 1]++;}for (int i = 1; i <= 26; i++) {if (cnt1[i] > cnt2[i]) {cout << "no" << endl;return 0;}}cout << "yes" << endl;return 0; }總結(jié)