题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
本题主要考校map的枚举Iterator和特定方法getOrDefault的使用
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
String s = in.nextLine();
StringBuffer sb = new StringBuffer();
int min = Integer.MAX_VALUE;
for(char ch : s.toCharArray()){
map.put(ch,map.getOrDefault(ch,0)+1);
}
//获取最小的那个次数-min
Iterator<Map.Entry<Character,Integer>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Character,Integer> entry = it.next();
min = Math.min(min,entry.getValue());
}
//排序-删除
for(int i = 0; i < s.length(); i++){
if(map.containsValue(min)){
if(map.get(s.charAt(i)) == min){
sb.append("");
continue;
}else{
sb.append(s.charAt(i));
}
}
}
System.out.println(sb.toString());
}
}