锁定老帖子 主题:字符串中第一个无重复字符
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-15
寻求最佳的算法
1. 编写一个高效率函数来找出一个字符串中第一个无重复字符.例如:”total”中的o,”teeter”中的r.要求算法效率优于O(n2).函数调用模型如下: Public static Character FirestNoRepeated(String str);
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-04-15
你这是问题还是结论:关是这个MAP就够了,还谈什么别的.
|
|
返回顶楼 | |
发表时间:2010-04-15
最后修改:2010-04-15
楼主,方法名是FirstNoRepeated吧!
写了个看看行不行: public static Character FirstNoRepeated(String str){ for(int i=0;i<str.length();i++){ if(str.split(String.valueOf(str.charAt(i))).length==2) return new Character(str.charAt(i)); } return null; }; |
|
返回顶楼 | |
发表时间:2010-04-15
呵呵,和我的一个见过的题目很相似的给一个任意字符组成的字符串统计每个字符出现的次数
|
|
返回顶楼 | |
发表时间:2010-04-16
chenyulong1 写道 楼主,方法名是FirstNoRepeated吧!
写了个看看行不行: public static Character FirstNoRepeated(String str){ for(int i=0;i<str.length();i++){ if(str.split(String.valueOf(str.charAt(i))).length==2) return new Character(str.charAt(i)); } return null; }; 你的方法也挺好的,但是不知道谁的执行效率高! |
|
返回顶楼 | |
发表时间:2010-04-16
看到了Character到char的装箱拆箱,就知道这个代码与高效两个字无关了.
|
|
返回顶楼 | |
发表时间:2010-04-16
拿空间换效率咯。。构造Hashset
|
|
返回顶楼 | |
发表时间:2010-04-16
sw1982 写道 拿空间换效率咯。。构造Hashset
具体怎么换了? |
|
返回顶楼 | |
发表时间:2010-04-16
ysen 写道 chenyulong1 写道 楼主,方法名是FirstNoRepeated吧!
写了个看看行不行: public static Character FirstNoRepeated(String str){ for(int i=0;i<str.length();i++){ if(str.split(String.valueOf(str.charAt(i))).length==2) return new Character(str.charAt(i)); } return null; }; 你的方法也挺好的,但是不知道谁的执行效率高! 效率高不高测试一下就知道了。 记得有句话很经典:内存越来越便宜,程序员却越来越贵。 代码越是简单明了越好,对于这个题来说,突出的是“第一个”无重复的字符。所以用这种方法可能会减少操作的次数,比方说HELLO WORLD这里第一个H就是无重复的了。 如果需要更多的功能扩展,那当然是放在MAP里好。 |
|
返回顶楼 | |
发表时间:2010-04-16
public static Character getFristChar2(String arg){
for( int i = 0 ; i < arg.length() ; i++){ if(arg.indexOf(String.valueOf(arg.charAt(i))) == arg.lastIndexOf(String.valueOf(arg.charAt(i)))){ return arg.charAt(i); } } return null; } 以前看的一个帖子的东西 |
|
返回顶楼 | |