目录
题目描述:1208. 翻硬币 - AcWing题库
题目思路:
代码详解:
题目描述:1208. 翻硬币 - AcWing题库
题目思路:
这题我们可以用模拟直接模拟操作
也可以直接推出规律
这里就讲解推出的规律
因为每次必须选择两个进行翻硬币
我们就可以观察到
每次只需要找到两个最近不同的
硬币位置
取其中间相差数加+1
然后重复操作就可以得到
(该规律大家可以通过模拟证明,就例如样例1中的两个不同点,模拟使他们都变成一样所需要的次数)
代码详解:
[//]: # (打卡模板,上面预览按钮可以展示预览效果 ^^)
```
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
using namespace std;
#include<cstring>
#include<algorithm>
int main(){
string s1,s2;
cin>>s1>>s2;
int sum=0;
int index=-1;
for(int i=0;i<s1.length();i++){
if(s1[i]!=s2[i]){
if(-1==index){//第一个不同的点
index=i;
}else{//第二个不同的点
sum+=(i-index);
index=-1;
}
}
}
cout<<sum;
return 0;
}
```
PS:男儿何不带吴钩,收取关山五十州。