(暴力枚举) O(n)
按题意直接模拟即可
注意
不能用string 和 cin 读,y总最后一个数据卡常(这老6),被卡了40多分钟
C++ 代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1000010;
int n;
char str[N], s[N];
int main()
{
scanf("%d", &n);
while(n--)
{
scanf("%s%s", str, s);
int size = strlen(s);
int i = 0, res = 0, flag = 0;
while(i < size)
{
if(s[i] != str[i])
{
if(i - 1 >= 0 && i + 1 < size && s[i - 1] == str[i] && s[i + 1] == str[i])
s[i] = str[i], res++, i += 1;
else
{
flag = 1;
puts("-1");
break;
}
}
else
i++;
}
if(!flag)
printf("%d\n", res);
}
return 0;
}
我用的string能过,再开个加速只有400ms了
那不清楚,这是我8个月前做的了
可以开O2加速吗?
好像可以
佬,O2加速是啥呀