leetcode 387. 字串中的第一個唯一字元
阿新 • • 發佈:2019-02-20
給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。
案例:
s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.
注意事項:您可以假定該字串只包含小寫字母。
思路:尋找字串中的第一個不重複出現的字元,一種判斷的思路是:某個字元的首次出現位置與最後出現位置相同,則可判斷該字元在字串中不重複。呼叫標頭檔案<string>中的兩個函式 find_first_of() 和 find_last_of() ,各自返回值為首次出現位置和末次出現位置,當兩個返回值相等是,得到不重複出現的字元。
class Solution {
public:
int firstUniqChar(string s) {
for(int i = 0 ; i < s.size() ; i ++)
{
if(s.find_first_of(s[i]) == s.find_last_of(s[i]))
return i;
}
return -1;
}
};
int firstUniqChar(string s)
{
int counter[26] = {0};
for(int i=0; i<s.length(); ++i)
++counter[s[i] - 'a'];
for (int i=0; i<26; ++i)
{
if(1 == counter[s[i] - 'a'] )
return i;
}
return -1;
}