数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符
Posted 数据结构和算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。
截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666
视频讲解
LeetCode,初级算法-字符串中的第一个唯一字符
B站视频合集:https://www.bilibili.com/video/BV19v4y1g759
代码部分
解法一
public int firstUniqChar(String s)
int count[] = new int[26];
char[] chars = s.toCharArray();
//先统计每个字符出现的次数
for (int i = 0; i < s.length(); i++)
count[chars[i] - 'a']++;
//然后在遍历字符串s中的字符,如果出现次数是1就直接返回
for (int i = 0; i < s.length(); i++)
if (count[chars[i] - 'a'] == 1)
return i;
return -1;
解法二
public int firstUniqChar(String s)
Map<Character, Integer> map = new HashMap();
char[] chars = s.toCharArray();
//先统计每个字符的数量
for (char ch : chars)
map.put(ch, map.getOrDefault(ch, 0) + 1);
//然后在遍历字符串s中的字符,如果出现次数是1就直接返回
for (int i = 0; i < s.length(); i++)
if (map.get(chars[i]) == 1)
return i;
return -1;
解法三
public int firstUniqChar(String s)
for (int i = 0; i < s.length(); i++)
if (s.indexOf(s.charAt(i)) == s.lastIndexOf(s.charAt(i)))
return i;
return -1;
以上是关于数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章