字节跳动-夏令营笔试-1
字节跳动-夏令营笔试题-2021.05.30
01 - 字符串匹配
pair<int, int> findStrMatchLength(string s)
{
int cnt = 0, suc = 0, res = INT_MAX, si = -1;
unordered_map<char, int> sset, window;
// 1. 统计次数
for(auto c : s)
if(!sset.count(c))
sset[c] = 1, cnt++;
// 2. 维护滑动窗口
for(int l = 0, r = 0; r < s.size(); r++)
{
char c = s[r];
window[c]++;
if(window[c] <= sset[c]) suc++;
while(window[s[l]] > sset[s[l]]) window[s[l++]]--;
if(suc == cnt)
{
if(res > r - l + 1)
res = r - l + 1, si = l;
}
}
return {si, res};
}02 - 下象棋
03 - 树上dp
Last updated