删除一个字符串里出现次数最多(少)的子字符串
来源:互联网 发布:js屏蔽查看网页源代码 编辑:程序博客网 时间:2024/04/29 22:13
一、问题描述
* 删除一个字符串里出现次数最多的子字符串 如果有多个出现次数相同的并且出现次数最多则将多个全部删除
* 比如abbccd得到结果 ad
二、算法
删除最多的
/** * Delete the char which appears most * @param str */public void deleteStr(String str) {Map<Character, Integer> subMap = new TreeMap<Character, Integer>();List<Map.Entry<Character, Integer>> infoIds = new ArrayList<Map.Entry<Character, Integer>>( subMap.entrySet()); char[] charCell = str.toCharArray();for (int i = 0; i < charCell.length; i++) {if(subMap.containsKey(charCell[i])) {subMap.put(charCell[i], subMap.get(charCell[i]) + 1);} else {subMap.put(charCell[i], 1);}}for (Map.Entry<Character, Integer> entry : subMap.entrySet()) {infoIds.add(entry);}Collections.sort(infoIds, new Comparator<Map.Entry<Character, Integer>>() {public int compare(Map.Entry<Character, Integer> o1,Map.Entry<Character, Integer> o2) {return o2.getValue() - o1.getValue(); }});int count = infoIds.get(0).getValue();for (Map.Entry<Character, Integer> entry :infoIds) {if(entry.getValue() == count) {str = str.replaceAll(Character.toString(entry.getKey()),"");} else {break;}}System.out.println(str);}
(o2.getValue() - o1.getValue()变为这则是最少的)
public static void main(String[] args) {Main31 m = new Main31();String str = "abbccd";m.deleteStr(str);}
结果:
ad
看点:创建List<Map.entry<Character,Integer>>的list,然后用collections.sort(list.comparator);注意string中replace(a,b)a为字符串内容,b要替换成的值。
0 0
- 删除一个字符串里出现次数最多(少)的子字符串
- 删除一个字符串里出现次数最多的子字符串
- 求字符串里出现最多的子串及次数
- 求一个字符串连续出现次数最多的子串
- 求一个字符串中出现次数最多的子串
- 编程珠玑(四)求一个字符串中连续出现的次数最多的子串
- 一个字符串中连续出现次数最多的子串Java(2)
- 重复子串问题(二):求一个字符串中连续出现次数最多的子字符串
- 给定一个字符串,求出该字符串里哪个字符出现的次数最多
- 字符串---求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现并且出现次数最多的子串.
- js判断一个字符串中出现次数最多的字符串
- 出现次数最多的字符串
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- 取得中文字符串中出现次数最多的子串
- 在字符串中查找出现次数最多的子串
- codeforces A. Vanya and Cards
- 华为机试题---四舍五入
- 十款PHP开发者编码工具 你用过哪些?
- javac,使用"-d ."与省略-d的区别
- codeforces_235_div2解题报告
- 删除一个字符串里出现次数最多(少)的子字符串
- codeforces B. Sereja and Contests
- 资源管理器收藏夹项目不能再当前窗口打开的解决方法
- java zip 工具类
- 网络131黄宇倩--第二周作业
- 华为机试题---二维数组的转置
- UNIX高级环境编程读书笔记(chapter1-3)
- python进阶四_模块调用
- 华为机试题---随机打印50个随机(4-10长度)的字符串