沒什麼特別技巧,最 naive 的作法就是三層迴圈
1. 起始位置
2. U 的長度
3. 開始比較 U
#include <iostream>
using namespace std;
int main()
{
int k;
string input;
int ans;
while(cin >> k >> input){
int len = input.length();
bool U_exist;
ans = 0;
//start length offset
for(int s = 0; s+k < len; s++){
for(int l = 1; s-l >= 0 && s+k+l <= len; l++){
U_exist = true;
for(int o = 0; o<l; o++){
if(input[s-l+o] != input[s+k+o]){
U_exist = false;
break;
}
}
if(U_exist)
ans++;
}
}
cout << ans << endl;
}
return 0;
}
全站熱搜
留言列表