zoukankan      html  css  js  c++  java
  • LeetCode

    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".

    正常都能想到的O(m*n)的解法肯定不行,这种hash+滑动窗口的解法非常的酷炫。

    class Solution {
        public List<Integer> findAnagrams(String s, String p) {
            List<Integer> ret = new ArrayList<Integer>();
            if (s == null || s.equals(""))
                return ret;
            char[] chp = p.toCharArray();
            int[] hash = new int[256];
            for (char ch : chp)
                hash[ch] ++;
            
            int left=0, right=0, cnt=p.length();
            while (right < s.length()) {
                if (hash[s.charAt(right++)]-- > 0)
                    cnt --;
                if (cnt == 0)
                    ret.add(left);
                if (right-left == p.length() && hash[s.charAt(left++)]++ >= 0)
                    cnt ++;
            }
            return ret;
        }
        
        
    }

    http://blog.csdn.net/chenwuji91/article/details/52981530

  • 相关阅读:
    宝塔面板的数据库使用
    Spring MVC入门
    从分式第n项到线性递推——bostan-mori 算法的扩展应用
    计算几何专题训练
    博客整理
    wpf ScrollViewer自动滚到最上
    word2Vec笔记2021
    好用工具备份
    Samtools pick up seq
    Ryzen核显需要扩大显存吗?
  • 原文地址:https://www.cnblogs.com/wxisme/p/7418104.html
Copyright © 2011-2022 走看看