給出三個串 a b c,你的任務是從a中找到所有子串和b相等的串並替換為c串,輸出替換後的字串。
kmp模板題,套用kmp的板子,每次找b串,然後用sting.replace()換掉即可,如果找不到則退出迴圈。
/*kmp*/
#pragma gcc optimize(2)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
typedef pair<
int,
int> pii;
const
int n =
1e6+50;
const
int inf =
0x3f3f3f3f
;int nextval[n]
;string s, a, b;
void
get_next()
//求next陣列
else k = nextval[k]
;//類似遞迴的去找公共前字尾}}
intkmp()
//模板
else j = nextval[j];}
if(j == plen)
return i - j;
return-1
;}intmain()
cout << s << endl;
return0;
}
這道題還有stl做法,就是find和replace交替使用也可以ac。**如下:
/*stl做法*/
#pragma gcc optimize(2)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
typedef pair<
int,
int> pii;
const
int n =
250;
const
int inf =
0x3f3f3f3f
;int
main()
cout << s << endl;
return0;
}
牛客演算法周周練2
a 題意 求乙個數的順序和逆序之和。題解 其實就是個閹割版的高精度加法嘛。其實逆序數忽略前導零這個條件是沒有用的,因為順序數不可能有前導零,自然結果也不會有,然後注意下首位進製不取餘。include using namespace std int a 10 b 10 intmain for k j ...
牛客演算法周周練2
題目鏈結 include define sc x scanf lld x define pf printf define rep i,s,e for int i s i e i define dep i,e,s for int i e i s i using namespace std typede...
牛客演算法周周練3
只寫了乙個,打遊戲去了 就是個搜尋模板,直接寫就行 include include include include include include using namespace std define mid 1000000007 typedef long long ll int book 106 ...