当前位置:   article > 正文

力扣438.找到字符串中所有字母异位词

力扣438.找到字符串中所有字母异位词

力扣438.找到字符串中所有字母异位词

  • vector插入用emplace_back

    • push_back会构造拷贝函数
    • emplace_back直接在原数组中加数 更快一些
  •   class Solution {
      public:
          vector<int> findAnagrams(string s, string p) {
              int n = s.size();
              int pl = p.size();
              if(n < pl) return vector<int>();
              vector<int> cnt1(26);
              vector<int> cnt2(26);
              for(int i=0;i<pl;i++)
              {
                  cnt1[p[i]-'a'] ++;
                  cnt2[s[i]-'a'] ++;
              }
              vector<int> ans;
              if(cnt1 == cnt2) ans.emplace_back(0);;
              for(int i=pl;i<n;i++)
              {
                  cnt2[s[i-pl] - 'a'] --;
                  cnt2[s[i] - 'a'] ++;
                  if(cnt1 == cnt2) ans.emplace_back(i-pl+1);;
              }
              return ans;
          }
      };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/710522
推荐阅读
相关标签
  

闽ICP备14008679号