演算法 字串中第乙個不重複出現的元素

2021-09-05 08:40:40 字數 698 閱讀 2334

給定乙個字串,找出第乙個不重複出現的字元,並返回	 

其位置下標,否則返回-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 方法返回陣列的鍵值對,...