求第一个无重复字符
来源:互联网 发布:剑灵四糸乃捏脸数据 编辑:程序博客网 时间:2024/05/06 17:49
转自:http://www.javaeye.com/topic/399476
求第一个无重复字符,如"total"的第一个无重复字符是o,"teeter"的第一个无重复字符是r,效率要优于O(n的平方)
public class Tongji {
public static void main(String arg[]){
String test = "tatleae";
char[] array = test.toCharArray();
for(char tmp : array){
if(test.indexOf(tmp)==test.lastIndexOf(tmp)){
System.out.println(tmp);
break;
}
}
} //这个代码段,但是效率没有达到O(n)
/*
public static void main(String arg[]){
String test = "tatle";
char[] array = test.toCharArray();
LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>();
for(char tmp : array){
String str = tmp+"";
if(map.get(str)==null){
map.put(str, 1);
}else{
map.put(str, 0);
}
}
for(Entry<String, Integer> tmp : map.entrySet()){
if(tmp.getValue()!=null&&tmp.getValue()==1){
System.out.println(tmp.getKey());
break;
}
}
}
*/
}
//下面这种方法也是转自的刚才的网址的 代码不长,但是效率好像比较高
public static void main(String arg[]){
String str="tatle";
if (null == str) return;
char[] base = new char[Character.MAX_VALUE];
char[] arr = str.toCharArray();
for (char item : arr) {
base[item]++; //可以直接统计base['t']出现的次数
System.out.print(" "+(int)base[item]);
}
int value = -1;
for (char item : arr) {
//System.out.print(" "+base[item]);
if (base[item] == 1) {
value = item;
break;
}
}
if (value == -1) {
System.out.println("没找到");
} else {
System.out.println((char)value);
}
}
- 求第一个无重复字符
- 求第一个无重复字符
- 求第一个无重复字符
- 求第一个无重复字符
- 第一个无重复字符
- 一道笔试题(JAVA)--求第一个无重复字符(转自论坛)
- 求一个字符串中第一个出现无重复的字符
- 求数组中第一个无重复的元素
- 给定一个字符串,求第一个不重复的字符
- 给定一个字符串,求第一个不重复的字符
- 经典考题——无重复字符问题(查找字符串中第一个无重复字符)
- 经典考题——无重复字符问题(查找字符串中第一个无重复字符)
- 字符串的第一个不重复字符
- 字符串第一个重复出现的字符
- 第一个非重复出现的字符
- 寻找第一个重复的字符
- 字符流中第一个不重复
- 字符串中第一个重复的字符
- 1
- linux下DNS的 配置
- ajax过滤文本文件中敏感词、屏闭qq、手机号
- OPENGL的特殊效果 (zt)
- 简单回顾Java基本概念
- 求第一个无重复字符
- 网站收集中
- 在RHEL 5 中快速架设Sendmail邮件服务器
- 安裝OpenWebMail
- ie6 火狐兼用 预览图片
- DB2的安装与初次使用
- SQL查询慢的48个原因分析
- lail
- (转)AutoCompleteTextView和MultiAutoCompleteTextView