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