【力扣】387. 字符串中的第一个唯一字符

题目描述

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

示例 1:

输入: s = “leetcode”
输出: 0

示例 2:

输入: s = “loveleetcode”
输出: 2

示例 3:

输入: s = “aabb”
输出: -1

提示:

  • 1 <= s.length <= 105
  • s 只包含小写字母

解题方法

  • C 创建字母表
int firstUniqChar(char* s) {
    int alphabet[26] = {0}; // 定义字母表
    int i = 0;
    // 更新字母表中每个字母出现的次数
    for (i = 0; i < strlen(s); i++) {
        alphabet[s[i] - 'a']++;
    }
    // 查找第一个仅出现一次的字符
    for (i = 0; i < strlen(s); i++) {
        if (alphabet[s[i] - 'a'] == 1) {
            return i;
        }
    }
    return -1;
}

复杂度分析
时间复杂度为 O(n),n 为字符串的长度。
空间复杂度为 O(1)。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 05:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 05:06:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 05:06:01       82 阅读
  4. Python语言-面向对象

    2024-03-23 05:06:01       91 阅读

热门阅读

  1. 机器学习流程—数据分布不均处理

    2024-03-23 05:06:01       42 阅读
  2. 机器学习概念

    2024-03-23 05:06:01       40 阅读
  3. 作为前端,如何利用机器学习

    2024-03-23 05:06:01       36 阅读
  4. C语言 getchar()原理及易错点解析

    2024-03-23 05:06:01       38 阅读
  5. QT的模型&视图框架--看书笔记

    2024-03-23 05:06:01       38 阅读
  6. [ABC206E] Divide Both 解题记录

    2024-03-23 05:06:01       43 阅读
  7. P8682 [蓝桥杯 2019 省 B] 等差数列 Python

    2024-03-23 05:06:01       44 阅读
  8. 安卓面试题多线程 146-152

    2024-03-23 05:06:01       38 阅读
  9. qt 程序 打包 批处理方式

    2024-03-23 05:06:01       42 阅读
  10. 【C#】C#踩坑三角函数之uvw平台

    2024-03-23 05:06:01       41 阅读
  11. C++字符串

    2024-03-23 05:06:01       46 阅读