给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1
2018-11-24 09:37
148 查看
1、题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.
2、算法简单说明:利用C++来写的算法,题目很简单,可以用到C++容器中string,利用迭代器逐个比较查找出重复出现的字符串,设置一个count计数器,如果超过1个就进行下一个字符串的比较,直至比较到最后一个字符串,如果count还没超过1个(也就是小于1的时候)就说明此时的字符串只出现了一次,而且是最先一个只出现一次的字符。
class Solution { public: int firstUniqChar(string s) { int i, j, count = 0; if(s.size() == 0) return -1; for (i = 0; i < s.size(); i++) { for (j = 0; j < s.size(); j++) { if (s[i] == s[j]) { count++; } if(count>1) break; } if (count ==1 ) return i; count = 0; } return -1; } };
相关文章推荐
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
- 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。
- 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。
- 给定一个字符串s由大小写字母和空白字符组成,返回字符串中最后一个字的长度。 如果最后一个字不存在,则返回0。
- 给定一个字符串,查找该字符串中第一个重复出现的字符索引。要求:时间复杂度为O(n)。
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 给定一个字符串,求第一个不重复的字符
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 三种方法,在一个字符串中找到第一个只出现一次的字符,并返回它的位置,
- C++实现一个栈,出栈,入栈,返回最小值 时间复杂度为O(1),查找字符串中第一个重复出现的字符
- 常量指针 给定一个字符串,在目标字符串中查找任意字符的第一个字符,返回指针
- 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个stri
- 输入一个字符串(字符可以重复),输出(最后一个中出现一次的字符,如果字符的出现次数都是大于1,则返回NULL)
- 【剑指Offer-时间效率平衡】在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 26.在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 一个字符串参数(s)由字母(a-z,A-Z)组成, 且最大字符位数为40,要求写一个函数, 返回该参数中连续相同字母的最大个数及该字母,如果最大位数有多个,则返回第一个。例:字符串“aaaddxxxxddddxxxx”,返回值为:“x,4”。
- 给定一个字符串,找到最长的子串的长度没有重复字符