zoukankan      html  css  js  c++  java
  • 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".

    1. public class Solution {
    2. public List<int> FindAnagrams(string s, string p) {
    3. List<int> list = new List<int>();
    4. if (string.IsNullOrWhiteSpace(s) || s.Length < p.Length)
    5. return list;
    6. int sum = 0;
    7. int[] pArray = new int[26];
    8. foreach (char c in p){
    9. sum = sum + (c - 'a');
    10. ++pArray[c - 'a'];
    11. }
    12. int sum1 = 0;
    13. int startIndex = 0;
    14. for (int endIndex = 0; endIndex < s.Length; endIndex++){
    15. if (pArray[s[endIndex] - 'a'] == 0){
    16. sum1 = 0;
    17. startIndex = endIndex + 1;
    18. continue;
    19. }
    20. sum1 += s[endIndex] - 'a';
    21. if (endIndex - startIndex + 1 == p.Length){
    22. if(sum1 == sum) list.Add(startIndex);
    23. sum1 -= s[startIndex++] - 'a';
    24. }
    25. }
    26. return list;
    27. }
    28. }





  • 相关阅读:
    GlusterFS-分布式存储集群部署
    keepalived+HAproxy集群部署
    LB-HAproxy负载均衡部署
    Pacemaker高可用环境实践
    Nginx-负载均衡部署
    LB-LVS常见模式NAT/DR部署
    HTTPS原理、应用
    LDAP-autofs挂载用户验证
    GPG-非对称加密
    大数据入门学习(Linux)
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/dc81ba095635e1f575ca737521c2ecc5.html
Copyright © 2011-2022 走看看