滑窗問題總結

2022-05-05 06:51:11 字數 1734 閱讀 8334

對於大多數子字串問題,我們獲得乙個字串和需要尋找乙個符合條件的子字串。乙個通常的解法是使用hashmap來關聯兩個指標,接下來是模板:

思路:使用count作為匹配數

對於單個字串匹配問題,直接用乙個視窗滑動,右窗滑動並更改count值,使count值符合完全匹配條件;左窗滑動令count值不符合完全匹配條件,從而重新迭代程式,使視窗向右滑動。

同理,對於兩個字串匹配問題,先把p串初始化到map裡,然後用該map匹配s串。每次匹配成功則使count減一,直到count=0則完全匹配成功。

不過這模板也不一定都適合,比如最後的word串聯匹配就相似,但還是右差別,要學會靈活應用。

int findsubstring(string

s)

while(endwhile(/*

counter condition */)

} /*如果是找最大串則在這裡更新 d*/}

return

d; }

3. longest substring without repeating characters

input: "abcabcbb"

output: 3

explanation: the answer is"abc", with the length of 3.

class

solution

return

d; }

};

159.longest substring with at most two distinct characters

給出eceba,則輸出ece的長度3

classsolution 

len = max(len,end-begin);

}returnlen;

}};

76. minimum window substring

string minwindow(string s, stringt)   

}return d==int_max? "":s.substr(head, d);

}

438. find all anagrams in a string

給出字串s和字串t,在s中找出包含t字母隨意排序的子字串

class

solution

}

return

res;

}};

30、substring with concatenation of all words

s="barfoothefoobarman"

words=["foo","bar"]

output:[0,9]

class

solution

if (count==m)

}else//如果視窗中沒找到str,則清空當前視窗curmap和匹配數,並移位到下乙個word

}curmap.clear();//遍歷完一次則清空curmap,以便進行下一次的遍歷;

}return

res;

}};

c語言 滑窗法 滑窗演算法

滑窗演算法 與跳窗演算法 類似,滑窗 moving window 演算法也是通過限制各個時間視窗內所能接 收的最大信元數對業務量進行控制。區別是,在滑窗演算法中,時間視窗不是向前跳,而 是每過乙個信元時間向前滑動一次,滑動的長度是乙個信元的時間。以下是幾種 upc演算法。信元一旦被 upc判定是違約...

c 滑窗快取

前言 在大資料時代,軟體系統需要具備處理海量資料的能力,同時也更加依賴於系統強大的儲存能力與資料響應能力。各種大資料的工具如雨後春筍般孕育而生,這對於系統來說是極大的利好。但在後端採用分布式 雲儲存和虛擬化等技術大刀闊斧地解決大部分儲存問題後,仍然不足以滿足所有的業務需求。對於以使用者為終點的軟體系...

資料探勘比賽之「滑窗法」

作為參加資料比賽已經有8個月的一名新人,最近閱讀了幾位kaggle maser開源的 發現其中有一些有意思的內容,記錄一些對於這些問題的思考。一 問題描述 題目中涉及到嚴格的時間概念,例如 未來n天的流量 銷售等 未來n天內的使用者 物件對 使用者 商品等 的問題等,都可以利用滑窗法解決。諸如類似形...