首页 > 代码库 > 华为机试题之字符串压缩问题
华为机试题之字符串压缩问题
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,
并输出压缩后的字符串。
压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串
"abcbc"
由于无连续重复字符,压缩后的字符串还是
"abcbc"
.
2. 压缩字段的格式为
"字符重复的次数+字符"
。例如:字符串
"xxxyyyyyyz"
压缩后就成为
"3x6yz"
#include <iostream>#include <string.h>using namespace std;int main(){cout<<"请输入。。。"<<endl;char str[100]="";char outstr[100]="";cin.getline(str,100);int len=strlen(str);int i=0,j=0;int cnt=1;char c=str[0];for(i=1;i<len;i++){ if(str[i]==c) { cnt++; } else { if(cnt==1) { outstr[j++]=c; } else { outstr[j++]=cnt+‘0‘; outstr[j++]=c; } c=str[i]; cnt=1; } } if(c != str[j-1]) { if(cnt == 1) { outstr[j++] = c; } else { outstr[j++] = cnt + ‘0‘; outstr[j++] = c; } } cout<<outstr<<endl; return 0;}
华为机试题之字符串压缩问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。