LeetCode 438. Find All Anagrams in a String
来源:互联网 发布:淘宝一千零一夜在哪看 编辑:程序博客网 时间:2024/06/05 14:54
438. Find All Anagrams in a String
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".
分析:先将p字符串的所有字母的个数标记在hash数组中。设p的字符串长度为lenp,那么从字符串s的第一位开始分别找lenp长度的字串标记temphash,比较temphash是否等于hash,如果等于说明是anagram字符串,push_back到vector里面,最后返回vector
class Solution {public: vector<int> findAnagrams(string s, string p) { vector<int> result, hash(26, 0); int lenp = p.length(), lens = s.length(); for(int i = 0; i < lenp; i++) { hash[p[i] - 'a']++; } for(int i = 0; i <= lens - lenp; i++) { vector<int> temphash(26, 0); for(int j = i; j < i + lenp; j++) temphash[s[j] - 'a']++; if(temphash == hash) result.push_back(i); } return result; }};
- 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
- Leetcode 438. Find All Anagrams in a String (Easy) (cpp)
- 【LeetCode】 438. Find All Anagrams in a String
- [LeetCode]438. Find All Anagrams in a String
- ACL简单运用
- jquery超浓缩入门
- Linux PPP 数据收发流程
- c语言再学习之宏与函数
- Unity 5.x中的AssetBundle(一)
- LeetCode 438. Find All Anagrams in a String
- 帝国网站--系统目录结构介绍
- keras实现扩充图片集
- font awesome 的一些使用心得
- 怎样让PDM图形列表显示name和code等需要的信息
- [Spark机器学习]基于Spark 2.0 机器学习之推荐系统实现
- 千里之行始于足下
- rk3288 Android 5.1root方法
- Makefile文件编写