题解 | #牛牛的串联子串游戏#
牛牛的串联子串游戏
https://www.nowcoder.com/practice/c1984371372b43f3b10bf6d0231520bb
#include <unordered_map>
#include <vector>
class Solution {
public:
vector<int> findSubstring(string s, vector<string>& words) {
int len = s.size() ;
int n = words.size() , m = words[0].size() ;
// 滑动窗口
unordered_set<string> us , tt;
for(string& w : words ) tt.insert( w ) ;
int l = 0 ;
vector<int> res;
for(int r = 0 ;r< len ; r+=m ){
string seg = s.substr(r, m) ;
if( tt.count( seg ) == 0 ){
us.clear();
l = r+m ;
continue;
}
while( l < r && us.count( seg ) ){
us.erase( s.substr(l , m ) ) ;
l+=m ;
}
us.insert( seg ) ;
if( us.size() == n ){
res.push_back( l ) ;
}
}
return res;
}
};
海康威视公司福利 1125人发布
查看13道真题和解析