leetcode 438. Find All Anagrams in a String 一个简单的移动窗口问题
来源:互联网 发布:关于java 编辑:程序博客网 时间:2024/06/10 14:49
Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s.
Strings consists of lowercase English letters only and the length of both strings s and p will not be larger than 20,100.
The order of output does not matter.
Example 1:
Input:
s: “cbaebabacd” p: “abc”
Output:
[0, 6]
Explanation:
The substring with start index = 0 is “cba”, which is an anagram of “abc”.
The substring with start index = 6 is “bac”, which is an anagram of “abc”.
Example 2:
Input:
s: “abab” p: “ab”
Output:
[0, 1, 2]
Explanation:
The substring with start index = 0 is “ab”, which is an anagram of “ab”.
The substring with start index = 1 is “ba”, which is an anagram of “ab”.
The substring with start index = 2 is “ab”, which is an anagram of “ab”.
题意很简单,就是一个简单的移动窗口的问题,直接遍历比较窗口即可
代码如下:
#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <climits>#include <algorithm>#include <sstream>#include <functional>#include <bitset>#include <cmath>using namespace std;class Solution {public: vector<int> findAnagrams(string s, string p) { vector<int> res; vector<int> win(26, 0) , tar(26, 0); for (int i = 0; i < p.length(); i++) { win[s[i] - 'a']++; tar[p[i] - 'a']++; } if (win == tar) res.push_back(0); for (int i = p.length(); i < s.length(); i++) { win[s[i] - 'a']++; win[s[i-p.length()] - 'a']--; if (win == tar) res.push_back(i - p.length() + 1); } return res; }};
- leetcode 438. Find All Anagrams in a String 一个简单的移动窗口问题
- LeetCode 438. Find All Anagrams in a String 滑动窗口
- leetcode 438. Find All Anagrams in a String& 滑动窗口
- LeetCode Find All Anagrams in a String
- leetcode: Find All Anagrams in a String
- [LeetCode]Find All Anagrams in a String
- Leetcode Find All Anagrams in a String
- LeetCode : Find All Anagrams in a String
- leetcode[Find All Anagrams in a String]
- leetcode 438. Find All Anagrams in a String
- LeetCode 438. Find All Anagrams in a String
- LeetCode 438. Find All Anagrams in a String
- [leetcode] 438. Find All Anagrams in a String 解题报告
- 【leetcode】438. Find All Anagrams in a String【E】
- [leetcode]438. Find All Anagrams in a String
- [LeetCode] 438. Find All Anagrams in a String
- LeetCode笔记:438. Find All Anagrams in a String
- LeetCode 438. Find All Anagrams in a String
- 自定义控件:实现加减功能
- 织梦文章页评论框不显示的解决方法
- 移植u-boot-2012.04.01到jz2440开发板
- 波纹扩散特效(仿支付宝咻一咻功能)
- 贪婪的送礼者vijos
- leetcode 438. Find All Anagrams in a String 一个简单的移动窗口问题
- 局部变量和全局变量
- 37. Sudoku Solver
- 一个SoapExcept异常的处理以及.NET平台下WebService应用的一点注意事项
- 新标准大学英语综合教程2(第二版)unit1答案截图
- wannfly 挑战赛5 A
- 总结几个java面试题
- 如何调试一个TP给客户使用
- ☆【hnoi2004】L语言(题解)