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

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

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

import java.util.Scanner;

import java.util.Map;

import java.util.HashMap;

import java.lang.StringBuilder;

// 注意类名必须为 Main, 不要有任何 package xxx 信息

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        // 注意 hasNext 和 hasNextLine 的区别

        while (in.hasNext()) { // 注意 while 处理多个 case

            String a = in.next();

            System.out.println(getRemoveMinStr(a));

        }

    }

    private static String getRemoveMinStr(String str){

        Map<Character,Integermapnew HashMap<Character,Integer>();

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

            //利用map找出最少出现的字符的次数,然后用次数找到key,把原来的字符串中包含map key的字符删掉

            if(!map.containsKey(str.charAt(i))){

                map.put(str.charAt(i),1);

            }else{

                map.replace(str.charAt(i),map.get(str.charAt(i)),map.get(str.charAt(i))+1);

            }

        }

        int min = 20;

        for(Character key:map.keySet()){

            if(map.get(key)<min){

                min = map.get(key);

            }

        }

        StringBuilder sb = new StringBuilder();

        for(Character key:map.keySet()){

            if(map.get(key)==min){

                sb.append(key);

            }

        }

        for(char c:sb.toString().toCharArray()){

           str = str.replace(c+"","");

        }

        return str;

    }

}

全部评论

相关推荐

01-15 17:34
保定学院 Java
数学转码崽:学历没优势就得卷项目和实习啊,但是我看了一下你这个项目,什么雪花算法,搜索引擎,Docker,minio这些都属于通用的东西啊,根本不算亮点,没有任何业务相关性。 还有第二个看到统一鉴权,分片上传估计面试官都不想看了。连我一个偶尔刷刷牛客简历的都看多了,面试官估计早都看吐了。。。 秋招结束了,就尽量找找中小厂吧,毕竟你现在转行已经没时间了,高低有一段实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务