美文网首页
Amazon-First Unique Character in

Amazon-First Unique Character in

作者: 海生2018 | 来源:发表于2018-05-09 09:21 被阅读0次

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

    Examples:

    s = "leetcode"
    return 0.
    
    s = "loveleetcode",
    return 2.
    

    Note: You may assume the string contain only lowercase letters.

    Solution:

        public int firstUniqChar(String s) {
            if(s==null||s.length()==0) return -1;
            
            int[] freq=new int[256];
            char[] cs=s.toCharArray();
            for(char c:cs){
                freq[c]++;
            }
            for(int i=0;i<cs.length;i++){
                if(freq[cs[i]]==1){
                    return i;
                }
            }
            return -1;
        }
    

    时间复杂度:O(n)
    空间复杂度:O(1)

    哈希表的应用。两次遍历。可以优化空间复杂度至常数26,因为题目假定全是小写字符,所以哈希索引可以为c[i]-'a',这样就全是小写字符。
    我记得有一道题是返回第一次出现两次的字符,那个可以一次遍历,因为在put哈希表的时候,可以先检查哈希键存不存在,不存在再put进去,存在就直接返回,所以可以一次遍历完成。由于这题不遍历完一次是不知道是不是只出现一次的,所以一定要两次遍历。

    相关文章

      网友评论

          本文标题:Amazon-First Unique Character in

          本文链接:https://www.haomeiwen.com/subject/pmtnrftx.html