码迷,mamicode.com
首页 > 其他好文 > 详细

[2016-04-26][codeforces][665C - Simple Strings]

时间:2016-04-26 10:51:42      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-04-26 10:11:21 星期二

  • 题目编号:[2016-04-26][codeforces][665C - Simple Strings]

  • 题目大意:给定一个字符串,问最少需要更改多少字符,使得相邻的字母都不一样,输出更改后的字符串

  • 分析:

    • 贪心,从左往右扫一遍数组,更改相同的元素即可
  • 遇到的问题:

    • 注意,相同元素必须更改后面那个元素才是最优的答案.
      • 比如 aaa 这种情况只能更改中间那个
  1. #include<iostream>
  2. #include<string>
  3. #include<algorithm>
  4. #include<cstdio>
  5. using namespace std;
  6. int main(){
  7. string str;
  8. cin>>str;
  9. int sz = str.length();
  10. for(int i = 0 ; i < sz;++i){
  11. if(str[i] == str[i + 1]){
  12. char c = ‘a‘;
  13. while (c == str[i] || (i + 2 < n && c == str[i + 2]))
  14. c++;
  15. str[i + 1]= c;
  16. }
  17. }
  18. cout<<str<<‘\n‘;
  19. return 0;
  20. }




[2016-04-26][codeforces][665C - Simple Strings]

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/b1617c72dcbba5df306538d12b889521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!