题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9

import java.util.*;

public class Main{
   public static void main(String[] args){

        Scanner scan = new Scanner(System.in);

        while(scan.hasNext()){
            String str = scan.nextLine();
            solution(str);
        }
//
//        String str = "aabcddd";
//        solution(str);
    }
    public static void solution(String str){

        int[] alphabet = new int[26];
        char[] charArr = str.toCharArray();

        for (int i=0;i<charArr.length;i++){

            alphabet[(int)charArr[i]-(int)'a']++;//小写字母ASCII 97-122

        }
        int min = Integer.MAX_VALUE;

        for (int i=0;i<alphabet.length;i++){
            if (alphabet[i]!=0 && alphabet[i]<min){
                min = alphabet[i];
            }
        }//出现次数最小的找出来

        ArrayList<Character> list = new ArrayList<>();

        for (int i=0;i<alphabet.length;i++){
            if (alphabet[i]==min){
                list.add((char) (i+(int)'a') );
            }
        }//可能有多个最小值 都同时收进list里

        String res = "";
        for (int i=0;i<charArr.length;i++){
            if (!list.contains(charArr[i])){
                res+=charArr[i] ;
            }
        }//最后就判断一下 加一下就行了 复杂度O(N)
        System.out.println(res);

    }

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-30 18:19
点赞 评论 收藏
分享
07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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