leetcode 巧妙解法 387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.
class Solution {public static int firstUniqChar(String s) {int[] letter=new int[26];//存储各字符出现次数for (char c:s.toCharArray())//第一次遍历letter[c-'a']++;for (int i = 0; i <s.length() ; i++) {//第二次遍历if(letter[s.charAt(i)-'a']==1) return i;}return -1;//无解}
}
注意:应该是循环扫描字符串,而不是扫描数组。
用数组来做重复问题,有时候比map和set更好用。
解法二
class Solution {public int firstUniqChar(String s) {HashMap<Character, Integer> count = new HashMap<Character,Integer>();int n = s.length();// build hash map : character and how often it appearsfor (int i = 0; i < n; i++) {char c = s.charAt(i);count.put(c, count.getOrDefault(c, 0) + 1);}// find the indexfor (int i = 0; i < n; i++) {if (count.get(s.charAt(i)) == 1) return i;}return -1;}
}
总结:getOrDefault
意思就是当Map集合中有这个key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue
hashmap和使用数组本质上都是一样的,只是hashmap将数组中的索引当成了key来处理。
leetcode 巧妙解法 387. 字符串中的第一个唯一字符相关推荐
- Leetcode 387. 字符串中的第一个唯一字符
387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 . 示例 1: 输入: s = "leetcode&quo ...
- 387. 字符串中的第一个唯一字符(javascript)387. First Unique Character in a String
leetcode:https://leetcode-cn.com/problems/first-unique-character-in-a-string/ 387. 字符串中的第一个唯一字符 给定一个 ...
- 387. 字符串中的第一个唯一字符
387. 字符串中的第一个唯一字符--2020.12.27 题目 思路 题目 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "lee ...
- LeetCode:387.字符串中的第一个唯一字符
字符串中的唯一字符就是字符出现次数为1的 思路:首先一次遍历,统计出每个字符的出现次数,再遍历字符,如果字符出现个数是1,则当前字符对应的小标就是要返回的值 public class Test387 ...
- Python——LeetCode刷题——【387. 字符串中的第一个唯一字符】
题目描述: 解题思路: 逐个遍历字符串中的每个字符.用字典记录在字符串中每个字符的出现次数.最后遍历字符串中每个字符,字典中该字符作为key对应的value值为1,return首个value值为1的字 ...
- 力扣 387. 字符串中的第一个唯一字符 C语言实现
题目描述: 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 . 题目链接 方法一:哈希表 创建一个哈希表,遍历字符串中的字符,并在哈希表中查找该字符,如 ...
- leetcode 387. 字符串中的第一个唯一字符(hash)
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "leetcode" 返回 0 s = "loveleetcode ...
- leetcode 387. 字符串中的第一个唯一字符(First Unique Character in a String)
目录 题目描述: 示例: 解法: 题目描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "leetcode"返回 0. ...
- 2022-1-20 Leetcode 387.字符串中的第一个唯一字符
不能用 set,会导致重复出现的字母第一个无法被更改. class Solution {public:int firstUniqChar(string s) {set<char> mySe ...
最新文章
- python高并发编程_python_day10_并发编程
- 为virtualbox配置网络环境
- 数字下变频和数字上变频
- 休斯顿大学提出BCI-机器人(脑-外骨骼接口系统)可以改善运动恢复
- 渗透工具开发——XSS平台的命令行实现
- python 12306查询不到车次_python实现自动抢12306火车票,妈妈再也不用担心我没有车回去了...
- Molly's Chemicals
- 【大话数据结构算法】希尔排序
- python实现文本编辑器_Python-tkinter实现简单的文本编辑器
- [python opencv 计算机视觉零基础到实战] 十二 直方图
- Maven构建分布式项目时子模块相互依赖打包技巧
- python结束后找什么工作_python学习结束后找什么工作?
- 求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序。
- 积分竞猜网php源码_贵州省网络安全知识竞赛个人赛Writeup
- 1、配置后台登录以及模板引入
- wpf获取当前窗体的屏幕坐标
- 牡丹-曹州牡丹:曹州牡丹
- 十折交叉验证python_Python实现K折交叉验证法的方法步骤
- 王道机试 第十二章 动态规划 12.5 背包问题(0-1背包,完全背包,多重背包)
- 简单旅游景点HTML网页设计作品 DIV布局故宫介绍网页模板代码 DW家乡网站制作成品 web网页制作与实现