华为上机试题,字符替换

来源:互联网 发布:辛普森悖论 知乎 编辑:程序博客网 时间:2024/06/11 19:06

题目描述:输入的字符按如下转换:a->b,b->c,...,y->z,z->a;若字符串连续出现两个相同时,后一个需要转换两次,当连续相同的字母超过两个时,第三个字母按第一次出现算。

代码如下:

#include <iostream>#include <string>using namespace std;int main(){string str,re;char temp;int flag=0;getline(cin,str);for (int i = 0; i < str.size(); i++){if(str[i]!=temp){re.push_back((str[i]-'a'+1)%26 +'a');temp = str[i];flag=1;}else{if(flag==1){re.push_back((str[i]-'a'+2)%26 +'a');flag=0;}else{re.push_back((str[i]-'a'+1)%26 +'a');flag=1;}}}cout<<re<<endl;return 0;}


0 0
原创粉丝点击