`
jackey25
  • 浏览: 109194 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在一个字符串中查找重复次数最多的字符

阅读更多

在一个字符串中可能包含a-z中的多个字符,如有重复,如String data = "shfksjgljsfsfs",求出现次数最多的那个字母及次数,如有多个重复的则求出。

思路:
1.引入TreeSet,通过集合快速找到所有出现的字符。
2.引入ArrayList,为了快速排序,再通过StringBuffer生成排序后的字符串。
3.通过String Api中基本方法, indexOf lastIndexOf来计算TreeSet中每个字符串出现的最大值。
4.如果出现相同的则把相同的都记录在一个列表中。
5.记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)。
6.计算最大字符串列表中哪些才是真正出现次数最多的。


import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeSet;


public class Test2 {
	public static void main(String args[]){
		String input = "adsfsafasdfjlfdjgkdf";
		new Test2().doString(input);
	}

	public void doString(String input){
		char[] chars = input.toCharArray();
		ArrayList lists = new ArrayList();
		TreeSet set = new TreeSet();
		for(int i=0;i<chars.length;i++){
			lists.add(String.valueOf(chars[i]));
			set.add(String.valueOf(chars[i]));
		}
		System.out.println(set); //set没有重复的元素
		Collections.sort(lists);
		System.out.println(lists); //sort排序

		StringBuffer sb = new StringBuffer();
		for(int i=0;i<lists.size();i++){
			sb.append(lists.get(i));
		}
		input = sb.toString();
		System.out.println(input);
		int max = 0;
		String maxString = "";
		ArrayList maxlist = new ArrayList();

		Iterator its = set.iterator();
		while(its.hasNext()){
			String os = (String)its.next();
			int begin = input.indexOf(os);
			int end = input.lastIndexOf(os);
			int value = end - begin + 1;
			if(value > max){
				max = value;
				maxString = os;
				maxlist.add(os);
			}
			else if(value == max){
				maxlist.add(os);
			}
		}

		int index = 0;
		for(int i=0;i<maxlist.size();i++){
			if(maxlist.get(i).equals(maxString)){
				index = i;
				break;
			}
		}
		System.out.println("出现最多的字符分别是:");
		for(int i=index;i<maxlist.size();i++){
			System.out.println(maxlist.get(i) + "  ");
		}
		System.out.println();
		System.out.println("出现最多的次数为" + max);
	}
}

分享到:
评论

相关推荐

    查找字符串中出现重复次数最多的字符

    查找字符串中出现重复次数最多的字符,面试中经常遇到的面试题,对找工作很有帮助,拿出来与大家一起学习进步。

    求一个字符串中的连续出现次数最多的字串

    得出一个字符串中的连续出现次数最多的子串

    给定字符串,查找其中重复的子字符串积重复的次数[参考].pdf

    给定字符串,查找其中重复的子字符串积重复的次数[参考].pdf

    JS查找字符串中出现最多的字符及个数统计

    例如:求字符串’nininihaoa’中出现次数最多字符  var str = "nininihaoa"; var o = {}; for (var i = 0, length = str.length; i &lt; length; i++) { var char = str.charAt(i); if (o[char]) { o[char]+...

    密码破译—字符串匹配查找

    对于一篇文章,你可以查找任意(你可以输入)相连字符串长度,就可以得到重复出现的字符串,以及出现的位置和次数。

    Exercise-swift-find-most-repeed:快速找到字符串中重复次数最多的字符的算法

    使用Swift查找字符串中最重复的字符 在本练习中,我解决了一个简单的问题:在字符串中查找最重复的字符。 所有的努力都在寻找解决此问题的方法,这是可能的最佳方法。 该问题在时间复杂度上得到了解决。

    KMP算法:高效字符串匹配算法详解

    2. 文本编辑器开发者:在开发文本编辑器时,需要实现字符串查找和替换功能。KMP算法可以优化查找和替换操作,提高编辑器的性能。 3. 数据压缩开发者:在开发数据压缩算法时,需要查找重复的字符串并进行压缩。KMP...

    密码破译-相同字符串匹配查找

    功能:对于一篇文章,你可以查找任意(你可以输入)相连字符串长度,就可以得到重复出现的字符串,以及出现的位置和次数。

    2.KMP算法:高效字符串匹配算法详解

    2. 文本编辑器开发者:在开发文本编辑器时,需要实现字符串查找和替换功能。KMP算法可以优化查找和替换操作,提高编辑器的性能。 3. 数据压缩开发者:在开发数据压缩算法时,需要查找重复的字符串并进行压缩。KMP...

    c语言字符串分割,截取,子串查找,插入,删除

    int strarray_cat(char (*arr)[str_max_len],int i,char *str) //把二维arr字符串数组拼接成一个串,i是第一维的长度,存入str int replacate(char *res,int n,char const *str) //产生n个重复的str(串或者字符)存入...

    字符串理论:识别并减少重复的.NET字符串使用的内存

    查找重复的字符串,并提供查看哪些对象图使它们保持活动状态的方法。 一旦确定了可疑的引荐来源,就可以查询以查看其在整个堆中还保留着哪些其他字符串以及浪费的字节总数。 安装 从页面下载一个ZIP文件。 演练 ...

    Java统计字符串中字符出现次数的方法示例

    主要介绍了Java统计字符串中字符出现次数的方法,涉及Java针对字符串的遍历、查找、计算等相关操作技巧,需要的朋友可以参考下

    文档编辑器的设计与实现

    (3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。 (4)显示功能:编辑完成后可以显示编辑后的文档。 (5)抽取功能:重复单词只保留一份拷贝,...

    超级实用去重复统计工具EditPlus

    就拿去除重复行来说吧,几十万的数据用它就对了,比excel和sql快多了。导入进去,选择排序,去除重复行。

    数据结构-文章编辑.doc

    统计某一字符串在文章中出现的次数,并输出该次数; 3.删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字...

    gvim findstr

    * 重复: 以前字符或类别出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [class] 字符类别: 任何在字符集中的字符 [^class] 补字符类别: 任何不在字符集中的字符 [x-y] 范围: 在指定范围内的任何字符 \x ...

    最大公共字符串leetcode-python-gibberish:技术面试数据结构与算法练习题

    最大公共字符串leetcode Python胡言乱语 在python中实现的不同数据结构和算法。...在数组中查找重复项。 Input: [2,3,3,4,5,2] Output: 3 Explanation: Because the second index of 3 is less than the seco

    微信小程序如何计算数组中元素出现次数及排序

    在小程序使用中,有时候需要对获取的数组进行元素重复次数计算和排序等工作,下面以一个答题软件中计算各专业答题情况并排序的例子举例。 具体代码 //数组示例 var point = [[数学,1,1],[语文,0,1],[英语,1,1],[数学...

    华为机试华为OD机试算法题Python源码(41道).zip

    汽水瓶.py,求int型正整数在内存中存储时1的个数.py,求小球落地5次后所经历的路程和第5次反弹的高度.py,取近似值.py,删除字符串中出现次数最少的字符.py,蛇形矩阵.py,识别有效的IP地址和掩码并进行分类统计.py,输入一...

    VBSCRIPT中文手册

    InStrRev 函数 返回一个字符串在另一个字符串中出现的位置,是从字符串的末尾算起。 Int 函数 返回数的整数部分。 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 ...

Global site tag (gtag.js) - Google Analytics