在解压字符串时,不应该只判断第一个字符是否是字母,而应该循环判断。比如这种情况:“ASDF3H”,输出是“ADFHHH”,而正确的输出是“ASDFHHH”,因为i加了两次,漏了一个字符。
if (!isdigit(str[i]))
cout << str[i++];
应改为:
while (!isdigit(str[i]))
cout << str[i++];
1078 字符串压缩与解压(PAT (Basic Level) Practice)题目 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果...