Java面试基础--(出现次数最多的字符串)
2013-11-20 22:36
661 查看
题目:给定字符串,求出现次数最多的那个字母及次数,如有多个 重复则都输出。
eg,String data ="aaavzadfsdfsdhshdWashfasdf";
思路:
1.引入TreeSet,通过集合快速找到所有出现的字符串;
2,引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串;
3,通过String api中的基本方法 indeOf() lastIndexOf()来计算TreeSet中每个字符串的最大值;
4,如果出现相同的则把相同的都记录在一个列表中,
5,记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)
6,计算最大字符串列表中哪些才是真正出现次数最多的。
eg,String data ="aaavzadfsdfsdhshdWashfasdf";
思路:
1.引入TreeSet,通过集合快速找到所有出现的字符串;
2,引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串;
3,通过String api中的基本方法 indeOf() lastIndexOf()来计算TreeSet中每个字符串的最大值;
4,如果出现相同的则把相同的都记录在一个列表中,
5,记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)
6,计算最大字符串列表中哪些才是真正出现次数最多的。
import java.util.*; public class MaxStringNumber { public static void main(String[] args) throws Exception{ String input ="aaavzadfsdfsdhshdWashfasdf"; new MaxStringNumber().doString(input); } public void doString(String input) { // TODO Auto-generated method stub 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); Collections.sort(lists); System.out.println(lists); 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); } }
相关文章推荐
- Java求字符串中出现次数最多的字符
- java基础-打印字符串中字母出现次数
- 求一个字符串中连续出现次数最多的字串.[面试宝典14.5节]
- 一个字符串中出现次数最多的单词 java语言实现
- Java寻找字符串中出现次数最多的字母和次数、两个字符串中寻找最长子字符串、字符串排序
- Java面试值 从大字符串中汇总统计小字符串出现的次数
- Java 寻找出字符串中出现次数最多的字母和出现的次数
- java基础—统计一个字符串中各个字符出现的次数
- Java求字符串中出现次数最多的字符
- java截取字符串中出现次数最多的字母
- 寻找一个字符串中连续出现次数最多的子串(面试宝典14.5节面试题1)
- 我的Java开发学习之旅------>求字符串中出现次数最多的字符串以及出现的次数
- java编写程序查找出在一个字符串中出现次数最多的字母
- 一个笔试面试经常问的问题——统计字符串中出现最多的字符及次数
- java基础面试题之String字符串出现次数
- java基础练习-统计字符串中每个字符出现的次数
- java基础-统计字符串在另一个字符串出现次数
- java统计字符串中每个字符出现的次数并查询出现次数最多的字符和次数
- Java_基础—统计字符串中每个字符出现的次数
- 一个字符串中连续出现次数最多的子串Java(2)