求字串中包含唯一字元的最長子串

2021-06-13 02:17:15 字數 705 閱讀 9039

給你乙個字串,找到只包含唯一字元的最長子串。

given a string, find the longest sub sequence which contains only unique characters.

維護兩個指標,左指標和右指標。同時用乙個hash表儲存左右指標之間的字元以及字元出現的位置。初始化的時候:left = 0,right = 0.右指標不斷的前移,同時將所指的字元插入hash表中,直到遇到了重複字元,設為c。使用hash表找出c的位置,移動左指標並且將遇到的字元在hash表中的value清零,直到越過字元c的位置(保證了指標left和right之間的字串的每乙個字元都是唯一的)。然後重複增加right的值。同時不斷的記錄最長的字串。當右指標到達字串末尾時完成整個遍歷過程。

#include #include #include int find_lseq(char *str)

hash[*r]=pos++;

++r;

//左右指標之間的串的長度大於max時更新max 和 m

if(r-l > max)

}//根據串的長度和m指標輸出字串

while(max--) printf("%c",*m++);

putchar('\n');

return(0);

}int main(int argc, char *argv)

38 字元中的唯一字元

原題目 給定乙個字串,找到它的第乙個不重複的字元,並返回它的索引。如果不存在,則返回 1。示例 s leetcode 返回 0 s loveleetcode 返回 2 思路 用for迴圈遍歷每乙個元素,然後用find函式從前到後尋找這個元素並返回這個元素所在的位置,用rfind從後到錢尋找這個元素並...

字串(一) 字串Hash

今天開一手最不 tao 擅 yan 長的字串演算法 字串hash演算法。似乎提到字串的話,kmp應該是更為常見的一種,但是hash有它的優點,被犇們稱為 優雅的暴力 何謂hash?hash的中文稱為雜湊,這當然是音譯,直譯過來就是雜湊,或者也有叫預對映的。雜湊的作用就是通過某個特殊函式的對映,將任意...

PHP之生成唯一字串

生成唯一字串 0 存數字字串 1 小寫字母字串 2 大寫字母字串 3 大小寫數字字串 4 字元 5 數字,小寫,大寫,字元混合 param integer type 字串的型別 param integer length 字串的長度 param integer time 是否帶時間1 帶,0 不帶 r...