給定乙個字串,找出第乙個不重複出現的字元,並返回
其位置下標,否則返回-1。
如, s = "leetcode"
return 0.
s = "loveleetcode",
return 2.
假設字串僅包含小寫字母。
比較好的方法是線性演算法,無論如何,為確認字元只出現一次,我們都
得遍歷整個字串。
我們可以訪問每個字元,把它們出現的次數記錄在雜湊表中,這將耗費
o(n)的時間,其中n是字串的長度。
然後我們再遍歷一次字串,參考之前建立的雜湊表判斷當前訪問的字
符是否僅出現一次,是則返回當前字元,否則繼續訪問下乙個字元。這
次遍歷耗費的時間依然是o(n)。
/**
* find the first unique char
* @param s
* @return
*/public
static
int firstuniqchar (string s)
//find the index
for(
int i =
0; i < n; i++)}
return-1
;}
n為字串的長度 字串 第乙個不重複的字元
有關這個題目可以有很多的考察方式,但是本質的乙個方法就是利用hash表,來降低時間複雜度。先看第乙個題目,給定乙個字串,找到這個字串的第乙個不重複的字元 在乙個字串 1 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元的位置。若為空串,返回 1。位置索引從0開始。所以 實現 int...
第乙個非重複出現的字元
給乙個字串,從中找出第乙個只出現一次的字元。輸入字串 abcsgagc 輸出字元 b 使用等長度的陣列w作為輸入字串a的衛星資料,其中存放對應字元是否重複出現的標誌。初始化為0,當對應字元重複出現時將對應位賦值為1。函式mm char a,int m,int length,int w 判斷第m位字元...
演算法 返回字串中第乙個不重複字元的索引
題目描述 給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。示例 s leetcode 返回 0 s loveleetcode 返回 2思路 先使用lodash的 countby 方法返回每個字型出現的字數,這是乙個物件 然後使用entries 方法返回陣列的鍵值對,...