描述
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:0≤�≤100000≤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, Boolean> hashMap = new HashMap<Character, Boolean>();
char[] chars = str.toCharArray();
for (int index = 0; index < chars.length; index++) {
if (hashMap.containsKey(str.charAt(index))) {
hashMap.put(str.charAt(index), false);
} else {
hashMap.put(str.charAt(index), true);
}
}
for (int index1 = 0; index1 < chars.length; index1++) {
if (hashMap.get(str.charAt(index1))) {
return index1;
}
}
return -1;
}
}
该代码实现了一个方法,用于在给定的字符串中查找第一个只出现一次的字符的位置。它使用哈希映射存储每个字符及其出现状态,然后遍历字符串以找到第一个标记为出现一次的字符。如果找不到这样的字符,则返回-1。方法的时间和空间复杂度均为O(n)。

被折叠的 条评论
为什么被折叠?



