当前位置: 首页 > news >正文

[LeetCode]438.找到字符串中所有字母异位词(C++)

1.代码

#include<array>
class Solution {
public:vector<int> findAnagrams(string s, string p) {vector<int> result;int lens = s.size();int lenp = p.size();array<int, 26> s1 = {0};array<int, 26> p1 = {0};if(lens < lenp){return result;}for(char c:p){p1[int(c-'a')] ++;}for(int i = 0;i < lenp;i ++){s1[int(s[i]-'a')] ++;}for(int i = 0;i <= lens-lenp;i ++){if(s1 == p1){result.push_back(i);}if(i == lens-lenp) break;s1[int(s[i]-'a')] --;s1[int(s[i+lenp]-'a')] ++;}return result;}
};

2.思路

在s中构造一个长度与p相同的滑动窗口,用两个数组分别记录p和滑动窗口中的字母种类和数量,若两个数组完全相同,则表示找到一个字母异位词,将此时滑动窗口的起始位置加入result。


http://www.mrgr.cn/news/5324.html

相关文章:

  • 32次8.21(学习playbook-roles,脚本创建数据库和表,mycat读写分离)
  • 教你一键快速生成词云图片
  • 双向通信之Websocket
  • LeetCode 算法:划分字母区间 c++
  • MySQL: find_in_set基本使用
  • 发布MindSearch到ModelScope创空间
  • 线程的锁机制
  • 利用puppeteer将html网页生成图片
  • 网络编程
  • Neo4j 图数据库入门
  • Java爬虫图像处理:从获取到解析
  • 深入探索【Hadoop】生态系统:Hive、Pig、HBase及更多关键组件(上)
  • CSS3-新特性
  • 2024年如何将低质量视频变成高质量视频
  • 网安新声 | 网易云音乐崩了:网络安全如何守护在线体验
  • 【机器学习-监督学习】逻辑斯谛回归
  • 48、Python之模块和包:当导入模块时,Python解释器做了什么
  • ArcGIS热点分析 (Getis-Ord Gi*)——基于地级市尺度的七普人口普查数据的热点与冷点分析
  • GD32 ADC配置跳坑
  • vue一键打不同环境的包