题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
// 没用到算法写的有些乱 // 1、统计输出子串中的每个字符出现的次数 // 2、使用HashSet来记录每个字符出现的总次数,如果最后set的size==1,说明字符串中每符出现的次数是一样的,直接返回输入字符串;如果不是1则将set中的第一个数就是要删除的字符出现的次数
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.nextLine();
String[] array = str.split("");
List<String> lsrString = Arrays.asList(array);
Set<Integer> set = new HashSet<>();
Map<String, Integer> map = new HashMap<>();
for (String s : array) {
if (!map.containsKey(s)) {
map.put(s, 0);
}
map.put(s, map.get(s)+1);
}
map.forEach((k, v) -> {
set.add(v);
});
if (set.size() == 1) {
System.out.println(str);
} else {
int num = Integer.parseInt(String.valueOf(set.toArray()[0]));
List<String> lst = new ArrayList<>();
map.forEach((k, v) ->{
if (v == num) {
lst.add(k);
}
});
String result = lsrString.stream().filter(s -> !lst.contains(s)).collect(Collectors.joining());
System.out.println(result);
}
}
}
}