0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点# 解决剑指offer:第一个只出现一次的字符

1.简述:

描述

在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)

数据范围:,且字符串只有字母组成。

要求:空间复杂度 ,时间复杂度 

示例1

输入:

"google"

返回值:

4

示例2

输入:

"aa"

返回值:

-1

2.代码实现:

import java.util.*;
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 条评论