题目描述:输入的字符按如下转换: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;
}