解題:
/*
思路: 使用兩個輔助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 的雜湊值,比較是否相等,不等的話,視窗右移到最右端,依次比較...