题目链接:786. 第 K 个最小的素数分数 - 力扣(LeetCode) (leetcode-cn.com)
难度:Hard
分式 与 比较十,可以转换为 与 比较,通过自定义排序,直接返回第 个即可。
class Solution {
public:
vector<int> findAnagrams(string s, string p) {
vector<int> ans;
int len1 = s.size();
int len2 = p.size();
if(len2 > len1){
return ans;
}
unordered_map<int,int>m1;
unordered_map<int,int>m2;
for(int i=0;i<len2;i++){
m1[p[i]-'a']++;
m2[s[i]-'a']++;
}
int l = 0,r = len2-1;
while(r<len1){
if(m1==m2){
ans.push_back(l);
}
if(m2[s[l]-'a'] == 1){
m2.erase(s[l]-'a');
} else {
m2[s[l]-'a']--;
}
l++;
m2[s[++r]-'a']++;
}
return ans;
}
};