文章
16
粉丝
66
获赞
96
访问
14.5k
## 分析
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++) {
- ...
登录后发布评论
暂无评论,来抢沙发