题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
详细解释
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] s = str.toCharArray();
//定义一个HashMap
Map<Character, Integer> map = new HashMap<>();
int index = 0;
int min_val = Integer.MAX_VALUE;
//定义指针往右移动
while(index < s.length){
//判断HashMap中是否含有当前字符
if(!map.containsKey(s[index])){ //如果没有就添加,其val初始为0
map.put(s[index], 0);
min_val = Math.min(min_val, 0); //确定HashMap中最小val值
}else{ //如果当前与当前字符相同,将其对应的val 加 1
int add_val = map.get(s[index]) + 1;
map.put(s[index], add_val);
if(!map.containsValue(min_val)){ //如果HashMap中没有当前val,则令其为目当前的最小值
min_val = add_val;
}
}
index++;
}
//遍历,打印非最小val的字符
for(int i = 0; i < s.length; i++){
if(min_val != map.get(s[i])){
System.out.print(s[i]);
}
}
}
}