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

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

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);

    }

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务