绝唯cms网站管理系统,有0元开网店的吗,网站内容如何优化,做旅游网站的目的和意义文本压缩有很多种方法#xff0c;这里我们只考虑最简单的一种#xff1a;把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复#xff0c;就原样输出。例如 aba 压缩后仍然是 aba。 解压方法就是反过… 文本压缩有很多种方法这里我们只考虑最简单的一种把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复就原样输出。例如 aba 压缩后仍然是 aba。 解压方法就是反过来把形如 5c 这样的表示恢复为 ccccc。 本题需要你根据压缩或解压的要求对给定字符串进行处理。这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串。 输入格式 输入第一行给出一个字符如果是 C 就表示下面的字符串需要被压缩如果是 D 就表示下面的字符串需要被解压。第二行给出需要被压缩或解压的不超过 1000 个字符的字符串以回车结尾。题目保证字符重复个数在整型范围内且输出文件不超过 1MB。 输出格式 根据要求压缩或解压字符串并在一行中输出结果。 输入样例 1 C
TTTTThhiiiis isssss a tesssst CAaaa as输出样例 1 5T2h4is i5s a3 te4st CA3a as输入样例 2 D
5T2h4is i5s a3 te4st CA3a as10Z输出样例 2 TTTTThhiiiis isssss a tesssst CAaaa asZZZZZZZZZZ #includeiostream
using namespace std;
string s;void compress(){getline(cin,s);for(int i 0; i s.length(); i){int cnt 0;while(s[i] s[i1]){cnt;i;}if(cnt ! 0) cout cnt1;cout s[i];}
}void depress(){getline(cin,s);for(int i 0; i s.length(); i){int sum 0; while(s[i] 9 s[i] 0)sum sum * 10 s[i] - 0;for(int j 0; j sum; j)cout s[i];if(sum 0) cout s[i];}
}int main(){char c;cin c;getchar();if(c C) compress();else depress();return 0;
} 转载于:https://www.cnblogs.com/wanghao-boke/p/10424593.html