lintcode(647)Substring Anagrams
来源:互联网 发布:暴雪彩票源码 编辑:程序博客网 时间:2024/05/18 01:05
描述:
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 40,000.
The order of output does not matter.
样例:
Given s = "cbaebabacd"
p = "abc"
return [0, 6]
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".
思路:
首先遍历字符串s,截取以p中字符起始且与p等长的字符串,然后进入search进行判断,截取字符串是否与p包含相同的字符。
public class Solution { /** * @param s a string * @param p a non-empty string * @return a list of index */ public List<Integer> findAnagrams(String s, String p) { // Write your code here List<Integer> result = new ArrayList<Integer>(); if(s == null || s.length() == 0){ return result; } for(int i = 0;i <= s.length() - p.length();i++){ if(p.indexOf(s.charAt(i)) >= 0){ String temp = s.substring(i , i+p.length()); search(temp , p , i , result); } } return result; } public void search(String test , String p , int index , List<Integer> result){ int[] record = new int[26]; for(int i = 0;i<26;i++){ record[i] = 0; } for(int i = 0;i<test.length();i++){ record[test.charAt(i) - 'a']++; } for(int i = 0;i<p.length();i++){ if(record[p.charAt(i) - 'a'] < 1){ return; }else{ record[p.charAt(i) - 'a']--; } } for(int i = 0;i<26;i++){ if(record[i] != 0){ return; } } result.add(index); }}
0 0
- lintcode(647)Substring Anagrams
- LintCode 647 Substring Anagrams
- lintcode(round1)Substring Anagrams
- Substring Anagrams
- Substring Anagrams
- [LintCode]Anagrams(Python)
- Two Strings Are Anagrams-LintCode
- Lintcode - Longest common substring
- lintcode:Longest Common Substring
- [Lintcode]Minimum Window Substring
- [LintCode]Longest Common Substring(Python)
- LintCode:M-Longest Palindromic Substring
- LintCode Two Strings Are Anagrams 两个字符串是变位词
- 「LintCode」java字符串練習四──anagrams
- [LintCode]Two Strings Are Anagrams(C++|Java|Python)
- lintcode:Longest Substring Without Repeating Characters
- [LintCode 32] Minimum Window Substring(Python)
- Anagrams
- c语言环境下如何创建一个外部函数
- [Algorithm]九章五.DFS
- 一只小蜜蜂...
- 如何解决sublime text3中文出现乱码
- UUID跟UDID的区别
- lintcode(647)Substring Anagrams
- EOJ 3256拼音魔法(string+char[]的使用技巧)
- A. 拼音魔法(模拟)
- 如何将JSON的键转为键值-xyp-hf
- A == B ?
- aJax跨域请求,Java服务端的处理办法
- Opencv使用环境配置
- STL关联容器之map
- 使用@RequestBody遇到的问题