[LeetCode]First Unique Character in a String-字符串中第一个独有的字符

题目:

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.

这道题看似简单,其实还是容易碰到一些平时不在意的用法的。晚上熄灯前我来补上解题过程~~~

思路:

此题思路和前面勒索信那题的思路有相同的地方,都是利用了map
不过这题在leetcode上不能用,主要好像leetcode没有Entry。经过测试还是可以使用的。具体不用entry的方法我会想办法~

代码:

public int firstUniqChar(String s) {
        Map<Character, Integer> map = new LinkedHashMap<>(s.length());  
        for (char c : s.toCharArray()) {  
            if (map.containsKey(c)) {
                map.put(c, map.get(c)+1);
            }else {
                map.put(c, 1);
            }
        }  
        for (Entry<Character, Integer> entry : map.entrySet()) {  
            if (entry.getValue() == 1) {  
                return s.indexOf(entry.getKey());  
            }  
        }  
        return 0;
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容