原始问题:
"C++实现字符串压缩:给定数字串判断压缩结果"
解析:首先需要统计给定字符串中每个数字出现的次数,然后按照出现次数从大到小排序,最后将排序后的数字拼接成一个新的字符串。
代码如下:
#include <stdio.h>
#include <string.h>
void compress(char *s, char *s_prime) {
int count[10] = {0};
int len = strlen(s);
for (int i = 0; i < len; i++) {
count[(s[i] - '0')]++;
}
int index = 0;
for (int i = 9; i >= 0; i--) {
while (count[i] > 0) {
s_prime[index++] = '0' + i;
count[i]--;
}
}
s_prime[index] = '\0';
}
int main() {
char s[] = "112233444555";
char s_prime[100];
compress(s, s_prime);
printf("压缩后的字符串为:%s
", s_prime);
return 0;
}
Prev:依据水文站水沙通量变化规律,预测未来两年趋势并制定最优采样监测方案以降低成本