剑指offer-第五章优化时间和空间效率(在字符串中第一次出现切只出现一次的字符)

题目:在字符串中第一次出现切只出现一次的字符

思路:用HashMap来存放对应的char值和该char出现的次数。做一次变量就可以得到第一个只出现一次的字符。

Java代码:

import java.util.LinkedHashMap;

//思路:用HashMap来存放对应的char值和该char出现的次数。做一次变量就可以得到第一个只出现一次的字符。
public class FirstNotRepeatingChar {
    public Character firstNotRepeating(String str){
        if(str==null)
            return null;
        char[] chars=str.toCharArray();
        LinkedHashMap<Character,Integer> hashMap=new LinkedHashMap<Character,Integer>();
        for(char item:chars){
            if(hashMap.containsKey(item))
                hashMap.put(item, hashMap.get(item)+1);
            else
                hashMap.put(item, 1);
            
        }
        for(char key:hashMap.keySet()){
            if(hashMap.get(key)==1)
                return key;
        }
        return null;
    }
    public static void main(String[] args){
        String str = "abaccdebff";
        FirstNotRepeatingChar test = new FirstNotRepeatingChar();
        System.out.println(test.firstNotRepeating(str));
    }
}

 

posted @ 2015-08-26 21:54  lisahappy  阅读(210)  评论(0编辑  收藏  举报