题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
StringBuilder sb = new StringBuilder();
Map<Character,Integer> map = new HashMap<>();
for(int i=0; i<str.length(); i++){
map.put(str.charAt(i),map.getOrDefault(str.charAt(i), 0)+1);
}
/*
这一步是将字符串中出现的字母和对应次数存入map
*/
int min = Integer.MAX_VALUE;
for(int j:map.values()){
if(j<min){
min = j;
}
}
/*
这一步是根据map中的value找出最少的次数
*/
for(int i=0; i<str.length(); i++){
if(map.get(str.charAt(i))!=min){
sb.append(str.charAt(i));
}
}
/*
这一步的意思是,基于原来字符串的顺序,若相应字符的出现次数在map中被记录为最少,则不将它加入StringBuilder中
*/
System.out.println(sb.toString());
}
}