[2016-04-26][codeforces][665C - Simple Strings]
时间:2016-04-26 10:11:21 星期二
题目编号:[2016-04-26][codeforces][665C - Simple Strings]
题目大意:给定一个字符串,问最少需要更改多少字符,使得相邻的字母都不一样,输出更改后的字符串
分析:
- 贪心,从左往右扫一遍数组,更改相同的元素即可
遇到的问题:
- 注意,相同元素必须更改后面那个元素才是最优的答案.
- 比如 aaa 这种情况只能更改中间那个
- 注意,相同元素必须更改后面那个元素才是最优的答案.
#include<iostream>#include<string>#include<algorithm>#include<cstdio>using namespace std;int main(){string str;cin>>str;int sz = str.length();for(int i = 0 ; i < sz;++i){if(str[i] == str[i + 1]){char c = 'a';while (c == str[i] || (i + 2 < n && c == str[i + 2]))c++;str[i + 1]= c;}}cout<<str<<'\n';return 0;}
浙公网安备 33010602011771号