题目描述
blablabla
样例
//算法思想:我们在对硬币进行反转的时候发现,对于中间的硬币进行翻转的时候,可以让它左边或者右边的硬币产生连锁反应。
//不妨规定一个规则,当我们翻一个硬币的时候,只能对它右边的硬币产生连锁反应,于是我们可以从左向右对字符串进行遍历,
//如果遇见不一样的地方就进行翻转,遍历过的地方就再也不去改变,这样的话时间复杂度就是O(n).只需遍历一次并输出翻转的
//次数就可以了。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
string a,b;
int count1;
void turn(int x){
if(b[x]=='*') b[x]='o';
else{ b[x]='*';}
//printf("###########\n");
}
int main(){
cin>>a>>b;
for(int i=0;i<a.size();i++){
if(a[i]!=b[i]) {
turn(i);
turn(i+1);
count1++;
}
}
printf("%d",count1);
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla