首页 > 试题广场 >

第一个只出现一次的字符

[编程题]第一个只出现一次的字符
  • 热度指数:560673 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)


数据范围:,且字符串只有字母组成。
要求:空间复杂度 ,时间复杂度
示例1

输入

"google"

输出

4
示例2

输入

"aa"

输出

-1
头像 牛客题解官
发表于 2020-06-01 14:45:55
精华题解 题目的主要信息: 在给定字符串中找到第一个只出现一次的字符的位置,位置从0开始 如果找不到则返回-1 字符串只由大小字母组成 举一反三: 学习完本题的思路你可以解决如下题目: JZ56. 数组中只出现一次的两个数字 JZ39. 数组中出现次数超过一半的数字 JZ75. 字符流中第一个不重复的字符 展开全文
头像 LaN666
发表于 2021-06-21 14:29:50
精华题解 34、第一个只出现一次的字符 解题思路: 这道题目很好理解,就是找出第一个只出现一次的字符。做法也很简单 方法一:哈希表 1、将字符当成哈希表中的key,第一次出现时候为true,重复出现则置为false; 2、遍历数组,拿到第一个在哈希表中的value为true的字符。 来看两张动图,简单易懂理解 展开全文
头像 漫漫云天自翱翔
发表于 2021-07-18 01:05:06
精华题解 题解一:暴力主体思路:选定一个字母,遍历往后所有的字母,找是否出现相同的字母:1、将所有相同的字母设置为' ',防止后续重新被遍历到。开始下一个字母;2、遍历完所有字母都不相同,即为最后的答案;3、所有字母都不是唯一出现则返回-1。 图示: 复杂度分析:时间复杂度:O(n^2),双层循环;空间复 展开全文
头像 Peterliang
发表于 2021-07-19 09:54:37
精华题解 题意分析 这个题目需要我们找出一个字符串里面的一个字符。这个字符需要满足以下条件。 这个字符在这个字符串里面只出现了一次 这个字符的位置在最前面 题目需要我们返回这个字符串出现的位置(位置从0开始) 思路分析 这个题目,我主要用了两种方法进行求解。 解法一 字符哈希 我们首先遍历一遍整 展开全文
头像 蒙牛麦片
发表于 2021-07-16 18:05:10
精华题解 NC31 第一个只出现一次的字符 题意分析: 找出字符串中只出现过一次,且最先出现字符的下标。 示例:google返回:4解释:字符l只出现了一次,且在是第一次出现,l的下标为4。 题解一(暴力): 我们假设某个位置的字符是最后结果,与其他字符做比较,如果发现没有相同的,直接返回,有,则判断下一个 展开全文
头像 江南好___
发表于 2021-06-22 17:57:40
精华题解 描述 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) 示例 输入:"google" 返回值:4知识点:字符串,哈希表,数组难度:一星 题 展开全文
头像 一叶浮尘
发表于 2019-08-20 08:39:27
〉在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 刚开始还以为有什么特殊的解法,没想到当年也是按照hash的思想来做的,先统计出现的次数,然后在返回相应的index public cl 展开全文
头像 枫201906201702851
发表于 2020-01-02 21:44:23
O(n)极简内存版 public class Solution { public int FirstNotRepeatingChar(String str) { int[] counts = new int[58]; for(int i = 0; i < 展开全文
头像 一颗闪闪发亮的马路星
发表于 2020-02-13 02:23:21
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写) 这题我们看到题目后可以发现,因为他的字符串长度是有限的,而且我们需要找到只出现一次的字符,我们可以首先考虑用Hashmap这样的数 展开全文
头像 追风筝的人❥(^_-)Emma
发表于 2020-08-11 10:36:01
我是小白,当然只能用小白的方法解题了,简单粗暴。思路:用一个count来记录字符出现的次数,先将字符串转化成字符数组,第一层循环拿第i个字符,将第一层拿到的第i个字符分别和再次循环这个数组的每一个字符进行对比,如果发现有相同的字符,count++,break退出第二层for,继续第一层for,直到找 展开全文
头像 _201909041942296
发表于 2019-12-12 14:25:30
假设 输入的字符串为“google” 如果该字符只出现一次,那么从前开始查找和从后开始查找,找到的下标都应该是同一个。但是如果最坏的情况下可能要多次遍历str // 未优化版 public class Solution { public int FirstNotRepeatingChar(S 展开全文
头像 牛客282103517号
发表于 2022-01-24 14:59:49
通过累加count来判断是否第一次出现 int FirstNotRepeatingChar(char* str ) { int i,j,k = 0;//k为count,用来判断是否第一次出现 int len=strlen(str); int KeyArr[1000]; //遍历字符串, 展开全文
头像 ccจุ๊บ
发表于 2020-02-13 16:47:58
py3的话一下子就用这种常规的做法做出来了,看了一下别人的题解,以为有什么快速的方法,然而都差不多,就酱吧 # -*- coding:utf-8 -*- class Solution: def FirstNotRepeatingChar(self, s): # write c 展开全文
头像 小洋芋热爱NLP
发表于 2021-09-15 22:45:20
- 题目描述:- 题目链接:https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=188&&tqId=38575&rp=1&ru=/activity/oj&qru=/ta 展开全文
头像 常喝水
发表于 2019-12-24 20:08:01
注意python3直接字典遍历是有序的,而python2需要用有序字典 from collections import OrderedDict class Solution: def FirstNotRepeatingChar(self, s): # write code h 展开全文
头像 南大一汀烟雨
发表于 2020-05-13 16:02:45
通过的代码中第一个老哥代码的修改@风林火山_kelvin 题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数) //注释的代码为测试用例 import java.ut 展开全文