1. 程式人生 > >字串中的第一個唯一字元-LeetCode

字串中的第一個唯一字元-LeetCode

題目描述:

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

注意事項:您可以假定該字串只包含小寫字母。

首先看注意事項--假定字串只包含小寫字母,那麼就好辦了,因為字母一共才26個。

好了,看思路:

1)因為小寫字母只有26個,所以我們可以申請一個數組來存放每個字母出現的次數,

2)遍歷原陣列,將每個字母-'a'後存入字母陣列a中,於是a的下標0到25就是對應的字母'a'到'z'了,自加後對應的值就是字母在字串中出現的次數。

3)再一次遍歷原陣列,直接檢視s[i]對應在字母陣列中的值是否為1,如果是,直接返回i,如果不是,繼續遍歷,

4)到最後也沒有找到出現一次的字母,返回-1.

程式碼如下:

int firstUniqChar(char* s) {
    int len=strlen(s);
    int a[26];
    memset(a,0,sizeof(int)*(26));
    for(int i=0;i<len;i++){
        a[s[i]-'a']++;
    }
    for(int i=0;i<len;i++){
        if(a[s[i]-'a']==1) return i;
    }
    return -1;
}

相關推薦

LeetCode 簡單題】85-字串第一唯一字元

宣告: 今天是第85道題。給定n,從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・`

swift 字串第一唯一字元 - LeetCode

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.   注意事項:您可以假定該字串只包含小寫字母。 class Solut

字串第一唯一字元-LeetCode

題目描述: 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 首先看注意事項

LeetCode——第387題:字串第一唯一字元

題目: 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返

每日一題--LeetCode 387 (字串第一唯一字元)java

題目描述: 程式碼如下: class Solution { public int firstUniqChar(String s) { String tmp=s; char []data=tmp.toCharArray(); if(

LeetCode題目--字串第一唯一字元(python實現)

題目 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。   p

LeetCode】387. 字串第一唯一字元

題目連結:https://leetcode-cn.com/problems/first-unique-character-in-a-string/description/ 題目描述 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 示例

C++ Leetcode初級演算法之字串第一唯一字元

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 class Solution { pub

leetcode-字串第一唯一字元

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 程式碼 /** * @para

Leetcode——字串第一唯一字元——python3

# 字串中的第一個唯一字元 class Solution(object): def first_uniq_char(self, s): # 方法一: # a = list(s) # b = [] #

刷爆LeetCode字串第一唯一字元

字串中的第一個唯一字元 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。

leetcode字串第一唯一字元(C、Python解答)

題目: 字串中的第一個唯一字元 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "lovelee

LeetCode解題 387. 字串第一唯一字元

文章已同步更新到本人個人部落格跳轉連結 題目描述: 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含

[Leetcode] 387. 字串第一唯一字元 java hashmap與ASCII碼

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 第一種方法(hashmap略慢)

Leetcode題解之字串(3)字串第一唯一字元

題目描述: 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 思路:第一種

leetcode-387. 字串第一唯一字元

一、問題描述給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。案例:s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.方法一:1.程式碼和思路因為字串是不可變的,這裡我們只能建立一個list來記錄列

LeetCode刷題之387Python字串第一唯一字元

題目: 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事項:您可以假定該字串只包含小寫字母。 我的解答: 先計數,

LeetCode刷題記錄——第387題(字串第一唯一字元

題目描述 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetcode”, 返回 2. 思路分析 關鍵問題在於,如何找到第一個不重複字元

LeetCode刷題——字串第一唯一字元

大家好,結束了五一假期,繼續刷題日記。本次題目要求如下:我的思路是這樣的:首先計算出s的長度並將s複製給一個字串cont,進入while迴圈,知道字串s為空,使用.find()函式尋找字串裡是否有與s[0]相同的字元若有,使用remove函式把所有與s[0]相同的字元包括s[

Leetcode演算法題(C語言)15--字串第一唯一字元

題目:字串中的第一個唯一字元 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetco