题解 | #牛牛的串联子串游戏#
牛牛的串联子串游戏
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; } };