【初级算法】14. 字符串中的第一个唯一字符
2018-05-03 13:12
381 查看
题目:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项:您可以假定该字符串只包含小写字母。
1.解题思路:
关于本题解题思路很简单,直接统计相关的26个英文字母的个数即可,非常简单。
typedef struct counter{ int id; int cnt; }counter; class Solution { public: int firstUniqChar(string s) { counter mycnt[26]; int minRes = s.size(); /*intial*/ memset(mycnt,0,sizeof(counter)*26); for(int i = 0;i < s.size();++i){ mycnt[s[i]-'a'].id = i; mycnt[s[i]-'a'].cnt += 1; } for(int i = 0;i < 26; ++i){ if(mycnt[i].cnt == 1){ minRes = min(mycnt[i].id,minRes); } } if(minRes == s.size()){ return -1; } return minRes; } };
相关文章推荐
- 算法练习:判断一个字符串中的字符是否唯一(只用基本数据结构)
- 判断字符串里的字符出现的次数是唯一的(算法)
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
- LeetCode 387. First Unique Character in a String (字符串中的第一个唯一字符)
- 华为oj初级 找出字符串中第一个只出现一次的字符
- 算法之字符串选出第一个只出现一次的字符
- [C/C++]_[初级]_[标准库之几种算法库函数的运用,如字符串查找(字符个数查找)、分隔、删除、替换、排序、字符交换位置、大小写转换等等]
- 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)
- 算法十二:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 算法1——在一个字符串中查找第一个非重复的字符
- 1.1 设计算法判断一个字符串中字符都是否唯一的。如果不能使用额外的数据结构呢?
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 算法学习七----在一个字符串中找到第一个只出现一次的字符
- 实现一个算法检测字符串是否为唯一字符
- 经典算法面试题目-判断一个字符串中的字符是否唯一(1.1)
- 算法--06谷歌面试:字符串中第一个只出现一次的字符(Java实现)
- 算法习题17:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 数据结构——算法之(007)(在一个字符串中找到第一个只出现一次的字符)
- First Unique Character in a String(字符串中的第一个唯一字符)
- 一道面试题:从一个字符串中找出第一个不重复字符;算法一;