文章目录
- 题目要求
- 解题思路
- 代码实现
题目要求
示例 1:
输入: s = “leetcode”
输出: 0
示例 2:
输入: s = “loveleetcode”
输出: 2
示例 3:
输入: s = “aabb”
输出: -1
解题思路
1.遍历一便字符串,并将每一个字符-‘a’得到的就是0~25的数值,把它放入大小为26的数组中,每放一次,对应数组内容+1。这样每个字符出现的次数就被统计下来了。
2.在根据字符串的序列遍历一遍数组,遇到值为1的就输出这个字符。这个字符就是第一个唯一出现的字符。
代码实现
class Solution {
public:int firstUniqChar(string s) {int arr[26] = {0};string::iterator it = s.begin();while(it<s.end()){arr[*it-'a']++;it++;}for(int i=0;i<s.size();i++){if(arr[s[i]-'a'] == 1)return i;}return -1;}
};