题目:
在字符串中找出第一个只出现一次的字符,如输入“helloWorld”,则输出“H”,要求时间复杂度为0(N)
输入:
字符串:helloWorld
输出:
字符:h
解题思路:
1、创建哈希表A,遍历字符数组,将字符作为Key,出现次数做为value。
2、如果Key没有重复出现,则Value设置为1,否则Value累加1.
3、遍历哈希表,找到第一个Value为1的字符,并输出Key
Java解题思路:
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(findFirstchar("helloWorld"));
}
public static Character findFirstchar(String str){
char[] arr=str.toCharArray();
LinkedHashMap<Character, Integer> hash=new LinkedHashMap<Character, Integer>();
for(char i:arr){
if(hash.containsKey(i)){
hash.put(i, hash.get(i)+1);
}else{
hash.put(i, 1);
}
}
for(char i:hash.keySet()){
if(hash.get(i)==1){
return i;
}
}
return '0';
}