翻硬币
题目类似于一道贪心题目,每次都追求当前位置上的硬币于模式串相等,然后翻动其后面的一枚硬币(不论其状态如何);
这样的话只需要模拟到倒数第二个硬币就可以让待检测串与模式串匹配;
代码如下
#include <bits/stdc++.h>
using namespace std;
string str1,str2;
int main(){
int sum = 0;
cin>>str1>>str2;//str1为原字符串,str2为期待字符串
for(int i = 0; i < str1.size() - 1; i++)
{
if(str1[i] != str2[i])
{
sum++;
if (str1[i] == '*')
str1[i] = 'o';
else if (str1[i] == 'o')
str1[i] = '*';
if (str1[i+1] == '*')
str1[i+1] = 'o';
else if (str1[i+1] == 'o')
str1[i+1] = '*';
}
}
cout<< sum <<endl;
return 0;
}