首页 > 代码库 > Leetcode 387 First Unique Character in a String
Leetcode 387 First Unique Character in a String
Given a string, find the first non-repeating character in it and return it‘s index. If it doesn‘t exist, return -1.
Examples:
s = "leetcode"return 0.s = "loveleetcode",return 2.
Note: You may assume the string contain only lowercase letters.(小写字母)
首先这里假设只有小写字母,自然想到开一个大小为26的数组,保存每个字母出现的次数,然后在扫描一次字符串,判断出现次数是否为1,若是则直接返回小标,扫描结束后若还没有返回,说明没有字符只出现一次,返回1.
1 int firstUniqChar(char* s) { 2 int m[26] = {0}, len = strlen(s), i; 3 for(i = 0; i < len; i++){ 4 m[s[i] - ‘a‘]++; 5 } 6 for(i = 0; i < len; i++){ 7 if(m[s[i] - ‘a‘] == 1) 8 return i; 9 }10 return -1;11 }
如果没有假设只包含小写字母,则可以用map
1 class Solution { 2 public: 3 int firstUniqChar(string s) { 4 int len = s.length(), i; 5 map<char, int> map1; 6 for(i = 0; i < len; i++){ 7 map1[s[i]]++; 8 } 9 for(i = 0; i < len; i++){10 if(map1[s[i]] == 1)11 return i;12 }13 return -1;14 }15 };
Leetcode 387 First Unique Character in a String
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。