首页 > 代码库 > 华为机试—字符串替代(aa-bc)
华为机试—字符串替代(aa-bc)
将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。
void convert(char *input,char* output)
【输出】 char *output ,输出的字符串
#include <iostream> #include <string> using namespace std; void convert(char *input,char *output) { char *p=output; int len = strlen(input); int i=0; for(int j=i+1;j<=len;) { if(input[i]==input[j]) { if(input[i]=='y') { *p++=input[i]+1; *p++=input[i]-24; }else if(input[i]=='z') { *p++=input[i]-25; *p++=input[i]-24; }else{ *p++=input[i]+1; *p++=input[i]+2; } i=j+1; j=i+1; } else { *p++=input[i]+1; i=j; j=i+1; } } *p='\0'; } void main() { char a[1024]; char result[1024]={'\0'}; while(cin>>a){ convert(a,result); cout<<result<<endl<<endl; } }
测试结果,可能想的不周全,欢迎查漏补缺:
华为机试—字符串替代(aa-bc)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。