面试题--在一个字符串中查找重复次数最多的字符(转)
2012-03-07 22:16
483 查看
在一个字符串中可能包含a-z中的多个字符,如有重复,如String data = "shfksjgljsfsfs",求出现次数最多的那个字母及次数,如有多个重复的则求出。
思路:
1.引入TreeSet,通过集合快速找到所有出现的字符。
2.引入ArrayList,为了快速排序,再通过StringBuffer生成排序后的字符串。
3.通过String Api中基本方法, indexOf lastIndexOf来计算TreeSet中每个字符串出现的最大值。
4.如果出现相同的则把相同的都记录在一个列表中。
5.记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)。
6.计算最大字符串列表中哪些才是真正出现次数最多的。
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
思路:
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); } }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- 3g:如何查找一个字符串中重复次数最多的字符,返回这个字符的个数和字符
- 如何查找一个字符串中重复次数最多的字符,返回这个字符的个数和字符
- 查找一个字符串中重复次数最多的字符
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- JavaScript计算一个字符串最多重复的字符及出现次数
- 查找一个字符串中出现最多的字符出现的次数
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- 一个字符串中可能包含a~z中的多个字符,如有重复,求出现次数最多的那个字母及次数,如有多个重复最多的则都输出。
- 查找一个字符串中出现次处最多的那个字符,并输出出现次数
- 计算一个字符串最多重复的字符及出现次数
- 找出一个字符串中重复最多的字符以及出现的次数
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- 高效查找一个字符串中,出现次数最多的字符
- 查找一个字符串里,出现次数最多的字符,时间复杂度O(n)
- php面试题:如何知道一个未知长度的字符串哪个字符出现的次数最多?(字符串可由字母,数字及其他字符组成)请写出代码。
- 输入一个字符串,查找出出现次数最多的字符
- JS编写一个函数,实现传入一个不定长度字符串,查找出重复次数前n名的字符并分别统计其次数
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
- JavaScript计算一个字符串最多重复的字符及出现次数