4 滑動視窗解決字串問題

2021-10-04 20:40:00 字數 559 閱讀 4859

解題:

/*

思路: 使用兩個輔助vector,乙個記錄1的位置v1,乙個記錄某個1的前面0的數量v2,

用乙個長度為k的視窗在v1上滑動,滿足條件的子串的數量與視窗首尾位置對應的v2記錄的0的數量相關,

將每乙個視窗的結果相加即可。結果應該設定成long long型別,有乙個測試用例有很多0。

*/#include

using

namespace std;

intmain()

}if(czeros>0)

keyszeros.

push_back

(czeros)

;else

keyszeros.

push_back(0

);long

long sums=0;

if(k==0)

}else

if(keysindex.

size()

sums=0;

else

} cout

}

leetcode 雜湊 滑動視窗 字串

1 leetcode409 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串 class solution object deflongestpalindrome self,s type s str rtyp...

滑動視窗處理字串 LeetCode

給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。一開始的思路是這樣 因為使用list的ind...

String (字串雜湊 滑動視窗)

題目大意 給乙個字串s,求它連續長度為 m l 的子串s1,且s1可分為m個長度為 l 的子子串s2不相同的數量。思路 對比長度為 l 的字串是否相同,這裡用到了bkdrhash,一般來說最高效的常用hash了,存m個 l k l k 1 的雜湊值,比較是否相等,不等的話,視窗右移到最右端,依次比較...