字符串中第一个单独出现的字符
来源:互联网 发布:抖音 网络视听许可证 编辑:程序博客网 时间:2024/06/12 00:48
需求:
给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1
。
分析:
类似于寻找整型数组中第一个单独出现的数字,对于单独出现的字符或者数字这类问题,可以借助HashMap集合,将数组或者字符串中的字符或者数字及对应的角标存到HashMap中,如果是重复的元素,其对应的value是最后一次出现的角标。遍历数组或者字符串,如果当前被遍历元素的角标和map集合中该元素对应的value相同,说明该元素的单独出现的,直接返回角标即可,如果不相同,那么说明该元素是重复的,需要将map集合中的value值改成该元素的当前角标,继续遍历,如果没有单独出现的字符或数字,就返回-1。
代码:
public class Solution { /* * @param s: a string * @return: it's index */ public int firstUniqChar(String s) { // write your code here if(s == null || s.length() == 0) { return -1; } //创建map集合,遍历字符串,将字符和角标存到map集合中 HashMap<Character, Integer> hm = new HashMap<Character, Integer>(); for(int i = 0; i < s.length(); i++) { hm.put(s.charAt(i), i); } //遍历字符串,看当前字符的角标和map集合中该字符对应的value是否相同 //如果相同,说明就是单独出现的,直接返回该角标 //如果不同,说明有重复的字符出现,需要修改map集合中该字符对应的value值,继续遍历 for(int i = 0; i < s.length(); i++) { if(i == hm.get(s.charAt(i))) { return i; } hm.put(s.charAt(i), i); } return -1; }}
阅读全文
0 0
- 字符串中第一个单独出现的字符
- java实现--字符串中第一个单独出现的字符
- 找出字符串中只出现一次的第一个字符
- 查找字符串中第一个出现一次的字符
- 求一个字符串中第一个出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 字符串中第一个只出现一次的字符
- 字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 找到字符串中第一个出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 找出字符串中第一个出现次数最多的字符
- 字符串中第一个只出现一次的字符
- 寻找字符串中只出现一次的第一个字符
- 字符串中第一个出现2次的字符
- 找出字符串中第一个出现次数最多的字符
- 【VMware】VMware Workstation虚拟机不能联网的解决办法
- C#下给数字前面补0的方法
- java.io.IOException cannot be resolved to a type
- spring包扫描<context:component-scan>说明
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- 字符串中第一个单独出现的字符
- eclipse如何修改java(JDK)默认版本
- okhttp 多次使用InputStream
- LeetCode
- java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource的解决方法
- TortoiseGit安装与配置
- 请立即卸载-WPS、搜狗输入法
- ios-视频压缩
- 两个链表的第一个公共节点