题解 | #图片整理#

图片整理

http://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941

思路:
开一个数组,下标对应字符的ASCII码,存储字符出现的次数,最后按数组顺序输出。
代码实现:

import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            int a[]=new int[128];
            String str=in.next();
            for(int i=0;i<str.length();i++){
                int k=str.charAt(i);//统计出现次数
                a[k]++;
            }
            for(int j=48;j<a.length;j++){//从'0'开始输出
                if(a[j]!=0)
                    for(int b=0;b<a[j];b++)
                        System.out.print((char)j);                                    
            }
            System.out.println();
        }
    }

}
全部评论
有点像桶排序,好高级!
1 回复 分享
发布于 2022-03-22 16:58
看完你的第一句话,我就知道我白白忙了20分钟
5 回复 分享
发布于 2022-02-01 19:00
看不懂,看来还没混成入门
4 回复 分享
发布于 2022-03-03 18:24
有点意思但是为啥不用Arrays。sort方法来帮忙排序
4 回复 分享
发布于 2022-03-11 12:49
第一个循环是存储字符出现的次数,数组下标就是我们的字符对应的ASCII码,数组内容是次数。第二个循环从ASCII表的0开始,依次输出各个字符,第二个循环里的内循环用来输出重复的字符(主要是b
4 回复 分享
发布于 2022-07-24 16:37
好思路
1 回复 分享
发布于 2022-02-03 18:44
妙啊
1 回复 分享
发布于 2022-02-23 21:23
秀啊
点赞 回复 分享
发布于 2022-10-19 16:52 北京
print(''.join(sorted(list(input()))))
点赞 回复 分享
发布于 2023-02-22 15:52 江苏
厉害了,挺秀
点赞 回复 分享
发布于 2023-02-23 17:42 广西
优秀
点赞 回复 分享
发布于 2023-03-02 16:05 江苏
人才,我还想着重写compare。根本没想到把char直接强制转换成asc码,然后排序,再把数字强转成char
点赞 回复 分享
发布于 2023-03-12 18:06 广东
高 思路清奇 本来想这是个排序题
点赞 回复 分享
发布于 2023-03-14 08:57 江苏
我还搁着打算借用arrays.sort方法
点赞 回复 分享
发布于 03-07 20:32 广东

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
75 20 评论
分享
牛客网
牛客企业服务