题目描述

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

示例

s = “leetcode”
返回 0

s = “loveleetcode”
返回 2

源代码

思路:
第一步:定义一个存放字母的数组,代表里面字符串s中所有字母及其出现的个数。
第二步:遍历这个数组,找出所有仅出现过一次的字母,将这个字母放进原字符串中进行匹配,得到他的索引值。
第三步:返回最小的索引值。

class Solution {public:int firstUniqChar(string s) {if(s.empty()) return -1;int n=s.length();int arr[26]={0};int i;int temp=INT_MAX;for(i=0;i<n;i++){arr[s[i]-'a']++;}for(i=0;i<26;i++){if(arr[i]==1){for(int j=0;j<n;j++){if('a'+i==s[j]) temp=min(temp,j);}}}if(temp!=INT_MAX) return temp;else return -1;}
};

复杂度分析:

  • 时间复杂度:O(n),遍历了两遍字符串,
  • 空间复杂度:O(1),没有建立太大的数组,用一些常数变量来存储数据。


(最后吐槽一下笨笨的我,这题花费了我将近50min!)

力扣-387 字符串中的第一个唯一字符相关推荐

  1. 力扣 387. 字符串中的第一个唯一字符 C语言实现

    题目描述: 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 . 题目链接 方法一:哈希表 创建一个哈希表,遍历字符串中的字符,并在哈希表中查找该字符,如 ...

  2. 387. 字符串中的第一个唯一字符(javascript)387. First Unique Character in a String

    leetcode:https://leetcode-cn.com/problems/first-unique-character-in-a-string/ 387. 字符串中的第一个唯一字符 给定一个 ...

  3. 387. 字符串中的第一个唯一字符

    387. 字符串中的第一个唯一字符--2020.12.27 题目 思路 题目 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "lee ...

  4. Leetcode 387. 字符串中的第一个唯一字符

    387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 . 示例 1: 输入: s = "leetcode&quo ...

  5. LeetCode:387.字符串中的第一个唯一字符

    字符串中的唯一字符就是字符出现次数为1的 思路:首先一次遍历,统计出每个字符的出现次数,再遍历字符,如果字符出现个数是1,则当前字符对应的小标就是要返回的值 public class Test387 ...

  6. Python——LeetCode刷题——【387. 字符串中的第一个唯一字符】

    题目描述: 解题思路: 逐个遍历字符串中的每个字符.用字典记录在字符串中每个字符的出现次数.最后遍历字符串中每个字符,字典中该字符作为key对应的value值为1,return首个value值为1的字 ...

  7. leetcode 387. 字符串中的第一个唯一字符(hash)

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "leetcode" 返回 0 s = "loveleetcode ...

  8. leetcode 巧妙解法 387. 字符串中的第一个唯一字符

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = "loveleetcod ...

  9. leetcode 387. 字符串中的第一个唯一字符(First Unique Character in a String)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 示例: s = "leetcode"返回 0. ...

  10. 【数据结构】387. 字符串中的第一个唯一字符

    题目 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 .示例 1:输入: s = "leetcode" 输出: 0 示例 2:输入: ...

最新文章

  1. 生产者消费者问题——C++ windows版 多生产者多消费者的队列实现
  2. python3.7入门教程-python 3.7极速入门教程5循环
  3. editplus行转列_EditPlus常用快捷键
  4. P1220-关路灯【区间dp】
  5. 阻止事件冒泡——商品编辑
  6. 一个简单的VC++案例:显示年月日
  7. 移植制造时保持资源的「统一」。
  8. ReactiveCocoa 用法实例
  9. Pytorch和Torchvision版本对应
  10. 偶然获得2011高校信息化创新征文大赛鼓励奖
  11. 平面设计完全手册_平面设计师的三大软件:PS、AI、ID该如何选择?| 平面设计纯干货...
  12. 商务经济与统计中涉及到的所有公式
  13. dnf时装补丁教程_【时装补丁制作】消灭伸手党!最详细的图文教程~
  14. 计算机剪切全选快捷键,全选快捷键是什么
  15. 又是一个想当然的错误
  16. 3年经验Java程序员面阿里P6 差距在哪里
  17. configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma‘ found
  18. linux r7 4800u,r7 4800u和r7 4800h差距大吗?下面解读可以帮您
  19. CES 2019上芯片巨头们的争夺焦点:光线追踪、“永远”在线PC、汽车
  20. Android笔记:将布局转换成图片

热门文章

  1. luoguP3507 [POI2010]GRA 性质 + 动态规划
  2. Swagger生成WebAPI文档
  3. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页...
  4. JavaScript基础---语言基础(4)
  5. BERT4GCN:利用BERT中间层特征增强GCN进行基于方面的情感分类
  6. 648 页全彩 + 395张插图 的机器翻译传奇巨作 -- 送几本~
  7. 深度学习进阶NLP:word2vec的高速化
  8. [NAACL19]一个更好更快更强的序列标注成分句法分析器
  9. 具体数学-第9课(取整进阶与数论入门)
  10. 一、2.结构化解题流程细节