每天一道剑指offer-第一个只出现一次的字符

前言

今天的题目

题目

每天一道剑指offer-第一个只出现一次的字符

https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目详述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

思路

  • 字符串中的字符都是英文的字母,所以每一个字母都有一个ASCII码与其对应,然后建立一个字符数组长度是256,可以把每一个字符对应一个数组的下标

  • 然后设立一个index!然后比如字符a第一次出现那么strArray[a字符对应的ASC码] = index;然后如果下一次a再出现了,那么strArray[a字符对应的ASC码] = -1;这样子做,只要字符出现了大于等于2次,都会这样子等于-1

  • 而只出现一次的字符,由于index这个变量是每次递增的!我们只需要遍历一遍,找index最小的那个字符。

题目详解


结束语

作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。

相关文章:

  • 2022-01-05
  • 2022-02-02
  • 2022-12-23
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2021-10-21
猜你喜欢
  • 2021-07-04
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2021-06-13
相关资源
相似解决方案