题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

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);
            }
        }
    }
}
全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务