【华为OJ】【022-删除字符串中出现次数最少的字符】
来源:互联网 发布:mysql提高查询效率 编辑:程序博客网 时间:2024/05/17 07:35
【华为OJ】【算法总篇章】
【华为OJ】【022-删除字符串中出现次数最少的字符】
【工程下载】
题目描述
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
输入描述
字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。
输出描述
删除字符串中出现次数最少的字符后的字符串。
输入例子
abcdd
输出例子
dd
算法实现
import java.util.*;/** * Author: 王俊超 * Date: 2015-12-23 11:43 * Declaration: All Rights Reserved !!! */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);// Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt")); while (scanner.hasNext()) { String input = scanner.nextLine(); System.out.println(deleteLestWord(input)); } scanner.close(); } private static String deleteLestWord(String s) { Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } int min = Integer.MAX_VALUE; // 出现的最小的次数 Collection<Integer> coll = map.values(); for (int i : coll) { if (i < min) { min = 1; } } // 找要删除的字符 Set<Character> set = new HashSet<>(); Set<Map.Entry<Character, Integer>> entries = map.entrySet(); for (Map.Entry<Character, Integer> e: entries) { if (e.getValue() == min) { set.add(e.getKey()); } } StringBuilder builder = new StringBuilder(); // 删除字符 for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (!set.contains(c)) { builder.append(c); } } return builder.toString(); }}
2 0
- 华为oj 删除字符串中出现次数最少的字符
- 华为OJ 删除字符串中出现次数最少的字符
- 【华为 OJ 】删除字符串中出现次数最少的字符
- 华为oj 删除字符串中出现次数最少的字符
- 华为OJ删除字符串中出现次数最少的字符
- 【华为OJ】删除字符串中出现次数最少的字符
- 华为OJ-删除字符串中出现次数最少的字符
- 【华为OJ】【022-删除字符串中出现次数最少的字符】
- 【华为OJ】删除一个字符串中出现次数最少的字符
- 华为OJ(删除字符串中出现次数最少的字符)
- 华为OJ中级题-删除字符串中出现次数最少的字符
- 华为OJ——删除字符串中出现次数最少的字符
- 华为OJ——删除字符串中出现次数最少的字符
- 【华为OJ23】删除字符串中出现次数最少的字符
- 华为笔试:删除字符串中出现次数最少的字符
- OJ--------删除字符串中出现次数最少的字符
- 华为OJ----删除字符串中出现的最少的字符
- 华为 oj 简单密码破解&&汽水瓶&&删除字符串中出现次数最少的字符&&字符串排序
- 162 mysql Access denied for user 'root'@'localhost'
- -bash: ./****.py: /usr/bin/python^M: bad interpreter: No such file or directory
- python自定义模块导入方法
- mysql 5.6.30安装配置
- 【华为OJ】【021-汽水瓶】
- 【华为OJ】【022-删除字符串中出现次数最少的字符】
- LeetCode 146. LRU Cache
- 【华为OJ】【023-字符串加解密】
- 关闭TCP连接
- 【华为OJ】【024-字符串排序】
- Qt学习笔记:PyQt4安装
- 【华为OJ】【025-字符串合并处理】
- AUTOCAD 常用命令
- 这是最好的时代,也是最坏的时代-狄更斯