(字符串的模式模式匹配4.7.9)POJ 1782 Run Length Encoding(具有重复字符的字符串的处理方式)
/* * POJ_1782.cpp
*
* Created on: 2013年10月28日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1120;
int main(){
char s[maxn];
char tmp[maxn];
while(gets(s)){//这里不要使用scanf("%s",&s)否则会出错
int len = strlen(s);
int i;
for(i = 0 ; i < len ; ++i){
if(i + 1 < len && s[i] == s[i+1]){//输出有重复字符的子串
int j = 0;
tmp[j] = s[i];
j++;
i++;
while(j < 9 && i < len && s[i] == s[i-1]){
tmp[j] = s[i];
j++;
i++;
}
printf("%d%c",j,tmp[0]);
--i;
}else{//输出没有重复字符的子串
printf("1");
while(i < len){
if(i + 1 < len &&s[i] == s[i+1]){
break;
}
printf("%c",s[i]);
if(s[i] == '1'){//如果是1,就将他们变成11
printf("%c",s[i]);
}
i++;
}
--i;
printf("1");
}
}
printf("\n");
}
return 0;
}
补充:软件开发 , C++ ,