博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2020-12-09-LeetCode中“字符串中的第一个唯一字符”题解
阅读量:3949 次
发布时间:2019-05-24

本文共 1609 字,大约阅读时间需要 5 分钟。


title: LeetCode中字符串中的第一个唯一字符题解

description: LeetCode中字符串中的第一个唯一字符题解-java
tags:

  • LeetCode
  • 算法
    categories: LeetCode
    abbrlink: 3b8b067d
    date: 2020-12-09 20:48:00

LeetCode字符串中的第一个唯一字符题解-java

题目

难度简单296

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

示例:

s = "leetcode"返回 0s = "loveleetcode"返回 2

**提示:**你可以假定该字符串只包含小写字母。

题解

方法一:哈希表存放字符及其出现次数

思路

遍历一遍字符串,然后将字符串中每个字符及其相应出现的次数存放在一个哈希表中,然后遍历这个字符串,判断在哈希表中出现的次数,若找到第一个出现次数为1时,则返回此时下标

代码实现

class Solution {
public int firstUniqChar(String s) {
// 新建一个hashmap散列表用来存放出现的字符及其相应出现的次数 HashMap
hashmap = new HashMap<>(); // 遍历字符串,存放字符及其相应出现的次数 for(int i = 0; i < s.length(); i++){
if(!hashmap.containsKey(s.charAt(i))){
hashmap.put(s.charAt(i), 1); }else{
hashmap.put(s.charAt(i), hashmap.get(s.charAt(i)) + 1); } } // 遍历字符串,遇到第一个字符出现的次数为1时,返回此下标 for(int j = 0; j < s.length(); j++){
if(hashmap.get(s.charAt(j)) == 1){
return j; } } return -1; }}

复杂度分析

  • 时间复杂度: O(N)只遍历了两遍字符串,同时散列表中查找操作是常数时间复杂度的。

  • 空间复杂度: O(N)用到了散列表来存储字符串中每个元素出现的次数。

提交详情

image-20201209205215497

方法二:

思路

使用一个长度为26的int数组来存放字符出现的次数,数组的下标即对应26个字母

代码实现

class Solution {    public int firstUniqChar(String s) {        int[] chars = new int[26];        for (char c : s.toCharArray()) {            chars[c - 'a'] += 1;        }        for (int i = 0; i < s.length(); ++i) {            if (chars[s.charAt(i) - 'a'] == 1) {                return i;            }        }        return -1;    }}

复杂度分析

  • 时间复杂度: O(N)
  • 空间复杂度:O(1),只使用了一个长度为26的一维数组

提交详情

image-20201209205538546

转载地址:http://zkwzi.baihongyu.com/

你可能感兴趣的文章
快速阅读——《应用篇》
查看>>
活锁、死锁和饥饿
查看>>
进制转换
查看>>
【UML】静态视图分析示例
查看>>
【UML】动态视图分析示例
查看>>
【UML】开发过程应用
查看>>
【UML】四大关系篇
查看>>
行是知之始,知是行之成
查看>>
软件开发文档小结
查看>>
【UML】开发文档应用
查看>>
【UML】类图与用例图关系解析
查看>>
【SLA】理论学习阶段小结
查看>>
【C#】视频学习笔记(三)
查看>>
Power English 初始学习篇
查看>>
Mini Story 的正确打开方式
查看>>
【设计模式】基础篇
查看>>
【设计模式】六大设计原则篇
查看>>
【设计模式】理论整合+应用场景(一)
查看>>
【设计模式】理论整合+应用场景(二)
查看>>
《操作系统概论》调度算法小总
查看>>