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

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

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

    }

}

全部评论

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
牛客410815733号:这是什么电影查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务