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

    xiaoxiao2026-05-21  5

    描述

    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。

    知识点字符串运行时间限制0M内存限制0输入

    字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。

    输出

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

    样例输入abcdd样例输出dd

    import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String s=sc.nextLine(); System.out.println(pass(s)); }sc.close();} private static String pass(String s){ if(s==null){return null;} if(s.length()>20){return s;}//也要考虑非法输入 Map<Character,Integer> map=new HashMap<Character,Integer>(); for(int i=0;i<s.length();i++){ if(map.containsKey(s.charAt(i))){map.put(s.charAt(i),map.get(s.charAt(i))+1);} else{map.put(s.charAt(i),1);} } int min=Integer.MAX_VALUE; Collection<Integer> coll=map.values(); for(int i:coll){ if(i<min){ //min=1; min=min>i?i:min; }} Set<Character> set=new HashSet<>(); for(Map.Entry<Character,Integer> i:map.entrySet()){ if(i.getValue().equals(min)){set.add(i.getKey());} } StringBuffer sb=new StringBuffer(); for(int i=0;i<s.length();i++){if(!set.contains(s.charAt(i))){sb.append(s.charAt(i));}} return sb.toString(); } }

    转载请注明原文地址: https://ju.6miu.com/read-1309916.html
    最新回复(0)