文章
34
粉丝
0
获赞
132
访问
4.2k
#include<bits/stdc++.h>
using namespace std;
int main()
{
bool flag = false;
string s1 = "tantan"; vector<int> moshi(6, 0);
for(int i = 1; i < 6; i ++){
int j = moshi[i - 1];
while(j > 0 && s1[i] != s1[j]) j = moshi[j - 1];
if(moshi[i] == moshi[j]) j ++;
moshi[i] = j;
}
string s2 = "baibai";
string s; cin >> s;
for(int i = 0; i < s.size(); i ++)
{
s[i] = tolower(s[i]);
}
int len = 0;
for(int i = 0; i < s.size(); i ++)
{
while(len > 0 && s[i] != s1[len]) len = moshi[len - 1];
if(s[i] == s1[len]) len ++;
//s[i] = len; //弱智别写这个
if(len == 6)
{
flag = true;
int start = i - 6 + 1;
for(int i = 0; i < 6; i ++)
{
s[i + start] = s2[i];
}
len = 0; //别忘记归0
}
}
if(flag) cout << s;
else cout << "not find";
}
登录后发布评论
暂无评论,来抢沙发