文章
16
粉丝
66
获赞
4
访问
9.1k
## 分析
1.创建一个大小为128的数组sheet,序号表示ascii码强转为int表示的数值,对应的数组值表示该ascii码在输入字符串中出现的次数
2.设置一个max变量和id变量,max初值为0,从下标为((int)'A')开始遍历sheet数组,找到最大的值赋给max,对应的数组序号赋给id,如果最大的max值为0,表明字符串已经打印完毕了,结束程序。
3.将((char)id)打印max遍,然后回到第二步
### 代码——32行极简,比其他题解短10行
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char str[1001];
while (scanf("%s", str) != EOF) {
int length = strlen(str);
int sheet[128] = {0};
for (int i = 0; i < length; i++) {
int index = (int)str[i];
sheet[index]++;
}
while (true) {
int max = 0;
int id;
for (int i = (int)'A'; i < 128; i++) {
if (sheet[i] > max) {
max = sheet[i];
id = i;
}
}
if (max == 0) {
break;
}
for (int i = 0; i < max; i++) {
...
登录后发布评论
暂无评论,来抢沙发