UVa10340 字串匹配(水題)
阿新 • • 發佈:2018-12-16
又切了一個水題,最近一直切水題。。。我也沒辦法啊,不是水題不會寫。
本題就是字串的匹配問題。
給定字串s,t,如果s是t的subsequence,那麼輸出Yes,否則輸出No。
先輸入這兩個字串,我開始忘記寫scanf("%s%s",s,t) == 2了,然後報了TLE,這種東西還是不要省略比較好。。。
然後掃面字串t,如果t[i] == s[k],那麼讓k+1,否則繼續迴圈,其實可以在for迴圈中寫如果k==s_len則跳出迴圈,這樣可以讓虛幻早一點結束,不過沒有關係啦。
下面是程式碼:
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> const int maxn = 10000000; char s[maxn]; char t[maxn]; using namespace std; int main() { while (scanf("%s%s",s,t) == 2) { int s_len = strlen(s); int t_len = strlen(t); int k = 0; for (int i = 0; i < t_len; i++) { if (t[i] != s[k]) continue; k++; } printf("%s\n", k == s_len ? "Yes" : "No"); } return 0; }