1. 程式人生 > 其它 >redis搭建主從、哨兵

redis搭建主從、哨兵

題目

分析

用滑動視窗,就是雙指標來做。設 i 為串的尾指標,符合題目要求的串的左側指標為 j ,且 i 指標向後移動時,j 指標可能不動或者向右移動。

用雜湊表來存 從 j 到 i 部分的每個字元的次數,如果 i + 1 重複的話,那麼衝突的一定是 位置 i 和 i + 1 部分衝突,這時 j 需要往前移動,移動

到沒有雜湊表重複為止。

程式碼

 1 class Solution {
 2 public:
 3     int lengthOfLongestSubstring(string s) {
 4         unordered_map<char,int>heap;
5 int res = 0; 6 for(int i = 0,j = 0;i < s.size();i++){ 7 heap[s[i]]++; //尾指標往後移動,同時更新雜湊表 8 while(heap[s[i]] > 1){ 9 //出現重複字元 , 視窗開始滑動,頭部指標 j 開始往後移動,直到沒有重複為止 10 heap[s[j]]--; 11 j++; 12 } 13 res = max(res,i - j + 1
); 14 } 15 16 return res; 17 } 18 };