Java 剑指offer50:第一个只出现一次的字符位置
欢迎关注公众号:
题目描述:
从一个字符中查找只出现一次的字符的位置,这个题目有两种解法.
(1)采用hashmap来遍历字符串,字符做为 key,出现次数作为 value,遍历字符串每次都将 key 对应的 value 加 1。最后再遍历这个 HashMap 就可以找出出现次数为 1 的字符。
也可以采用如下动图的方式,在哈希表中,字符为key,如果有重复的字符,则为true,否则为false,然后遍历哈希表,打印为false的字符即可。
暴力算法,主体思路:
选定一个字母,遍历往后所有的字母,找是否出现相同的字母:
1、将所有相同的字母设置为' ',防止后续重新被遍历到。开始下一个字母;
2、遍历完所有字母都不相同,即为最后的答案;
3、所有字母都不是唯一出现则返回-1。
从上面的分析中可以看出,解题的本质在于利用哈希表遍历字符串,统计重复的字符,然后打印没有重复的字符。
package JavaOffer;/*
* @project project
共有 0 条评论