题目链接:https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
题目描述
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:0 ≤ n ≤10000,且字符串只有字母组成。
要求:空间复杂度 O(n),时间复杂度 O(n)
示例 1:
输入:"google"
返回值:4
示例 2:
输入:"aa"
返回值:-1
解题代码
import java.util.HashMap;
public class Solution {
public int FirstNotRepeatingChar(String str) {
HashMap<Character, Integer> mp = new HashMap<>();
//统计每个字符出现的次数
for (int i = 0; i < str.length(); i++)
mp.put(str.charAt(i), mp.getOrDefault(str.charAt(i), 0) + 1);
//找到第一个只出现一次的字母
for (int i = 0; i < str.length(); i++)
if (mp.get(str.charAt(i)) == 1)
return i;
//没有找到
return -1;
}
}
![]()

评论区 0