描述 |
|
---|---|
知识点 | 字符串 |
运行时间限制 | 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();
}
}