锁定老帖子 主题:面试题目字符统计
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-05
private static char getDuplicateChr(String param) {
char[] chrList = param.toCharArray(); List<Character> unique = new ArrayList<Character>(); for(int i=0;i<chrList.length;i++) { if (unique.contains(chrList[i])) { continue; } else { int index = param.indexOf(chrList[i]); if (index == i) { if (-1 != param.substring(index+1).indexOf(chrList[i])) { unique.add(chrList[i]); continue; } else { return chrList[i]; } } else { break; } } } return ' '; } |
|
返回顶楼 | |
发表时间:2009-08-05
还一种更快的:
private static char getDuplicateChr2(String param) { char[] chrList = param.toCharArray(); for (int i=0;i<chrList.length;i++) { if (param.indexOf(chrList[i]) == param.lastIndexOf(chrList[i])) { return chrList[i]; } } return ' '; } |
|
返回顶楼 | |
发表时间:2009-08-17
这种算法题,就不是让你用java类库来做的,肯定是要用最简单的东西,一用到类库效率要低好几个等级
|
|
返回顶楼 | |
发表时间:2009-08-18
最后修改:2009-08-18
来个php的
$old =str_split("eerrttyyf"); $chars = array_flip($old); $l = count($old); for($i=0;$i<$l;$i++){ if($i==$chars[$old[$i]]){ echo($old[$i]); break; } else { $chars[$old[$i]]=0; } } |
|
返回顶楼 | |
发表时间:2009-08-18
最好不要把count放在循环里!犯了错误
|
|
返回顶楼 | |
发表时间:2009-12-02
最后修改:2009-12-02
一个时间复杂度为n的算法。第一次发帖有什么不足之处还请指教哈!
//一个时间复杂度为n的算法 import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; public class TestClass { public static void main(String[] args) { HashMap<Character, Integer> map = new HashMap<Character, Integer>(); String str = "kabcdabc"; int len = str.length(); for (int i = 0; i < len; i++) { char c = str.charAt(i); if (map.containsKey(c)) { map.remove(c); } else { map.put(c, i); } } int minIndex = len; Entry<Character, Integer> minEntry = null; for (Iterator<Entry<Character, Integer>> iter = map.entrySet() .iterator(); iter.hasNext();) { Entry<Character, Integer> entry = iter.next(); if (entry.getValue() < minIndex) { minEntry = entry; } } System.out.println(minEntry.getKey()); } } 输出结果为: k |
|
返回顶楼 | |
发表时间:2009-12-02
这种字符统计,必然是一个255大小的状态数组啊,在c程序员看来都是拿不出手的题目,用什么库函数啊。
|
|
返回顶楼 | |
发表时间:2010-01-11
asd 写道 这种字符统计,必然是一个255大小的状态数组啊,在c程序员看来都是拿不出手的题目,用什么库函数啊。
可是得输出第一个不重复的字符啊,你的方法能行么?? |
|
返回顶楼 | |
发表时间:2010-01-11
piao_bo_yi 写道 asd 写道 这种字符统计,必然是一个255大小的状态数组啊,在c程序员看来都是拿不出手的题目,用什么库函数啊。
可是得输出第一个不重复的字符啊,你的方法能行么?? 明白了,原来能行。 |
|
返回顶楼 | |
发表时间:2010-01-11
asd 写道 这种字符统计,必然是一个255大小的状态数组啊,在c程序员看来都是拿不出手的题目,用什么库函数啊。
“箱子排序”果然是这种问题的通解啊~~~ |
|
返回顶楼 | |