题解 | #图片整理#

图片整理

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

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
78
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务