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

配色相关网站建个企业网站备案需要多长时间

配色相关网站,建个企业网站备案需要多长时间,电商关键词工具,网站做图分辨率是多少力扣——找到字符串中所有字母异位词(点击跳转) 如果 P “abc”,那么下图中的都是它的异位词。 在 S 中找到 P 的异位词后,要返回起始位置的下标。 做这道题之前,我们要知道如何判断两个字符串是否是异位词&#…

力扣——找到字符串中所有字母异位词(点击跳转)
在这里插入图片描述
如果 P = “abc”,那么下图中的都是它的异位词。
在这里插入图片描述
在 S 中找到 P 的异位词后,要返回起始位置的下标。
在这里插入图片描述

做这道题之前,我们要知道如何判断两个字符串是否是异位词,其实我们可以统计每个字符出现的次数,如果两个字符串中每个字符出现的次数相等,那么他们就是异位词。利用哈希表即可
在这里插入图片描述
我们定义一个变量 m 表示 p 字符串的长度,我们将 p 字符串中字母出现的次数存放在 hash1 中,在 s 这个字符串中,找到长度为 m 的子串 ,将次数存放到 hash2 中,然后比较两个哈希表是否相等就可以。
在这里插入图片描述
其实我们没有必要每次都将 m 个字母的次数都存放在哈希表中 ,如下图所示,红色为第一次枚举放入到哈希表中,粉色为第二次枚举放入到哈希表中,被荧光笔涂到的区域其实已经在哈希表中了,没必要再次存放,只需要将 c 从哈希表中删除,在将 e 添加到哈希表中即可
在这里插入图片描述
所以,我们可以使用滑动窗口的方法来解决此问题。
在这里插入图片描述

  1. left = 0,right = 0
  2. 进窗口:hash2[in]++
  3. 判断:right - left + 1 > m
    出窗口:hash2[out]–
    更新结果 :check(hash1,hash2)(比较两个哈希表是否相等)

在更新结果当中,我们需要遍历两个哈希表来进行check,比较麻烦,所以我们对更新结果的判断条件进行优化。

我们定义一个变量 count 来统计窗口有效字符的个数

如下图所示,当 c 进入窗口之后,与 hash1 中 c 字符出现的次数比较,有两种清情况。

  1. 小于等于 hash1 中的……,说明 c 为有效字符,让 count + 1
    在这里插入图片描述
    之后 right 继续右移,然后放入到 hash2 中
  2. 大于 hash1 中的……,count 不更新
    在这里插入图片描述
    接下来,right 右移
    在这里插入图片描述
    right 继续右移
    在这里插入图片描述

此时,窗口大于 m ,让 left 右移,再将第一个 c 从 hash2 中删除之前,我们要先判断此时这个字符出现的次数是否大于 hash1 中的次数,这种情况,显然是大于,那么删掉的就是无效字符,count 不需要变化,此时 c 的个数变成了 1。
在这里插入图片描述
然后我们再判断 count是否等于m,此时count == m,那么窗口中的字符就是 p 的异位词,输出起始位置下标
在这里插入图片描述
接下来的遍历就省略了

  1. 进窗口:hash2[in] <= hash1[in] ——> count++
  2. 出窗口:hash2[out] <= hash1[out] ——> count–
  3. 更新结果:count==m

代码如下:

class Solution {public List<Integer> findAnagrams(String s, String p) {List<Integer> ret = new ArrayList<Integer>();char[] s1 = s.toCharArray();char[] p1 = p.toCharArray();int[] hash1 = new int[26];for(char ch : p1){hash1[ch - 'a']++;}int[] hash2 = new int[26];int m = p.length();for(int left = 0,right = 0,count = 0;right < s1.length;right++){char in = s1[right];if(++hash2[in - 'a'] <= hash1[in - 'a']){count++;}if(right - left + 1 > m){char out = s1[left++];if(hash2[out - 'a']-- <= hash1[out - 'a']){count--;}}if(count == m){ret.add(left);}}return ret;}
}

今日任务完成,嘻嘻
在这里插入图片描述

http://www.dtcms.com/a/602423.html

相关文章:

  • 山西网站建设找哪家平谷网站建设服务
  • 多模态大模型应用开发:从CLIP到GPT-4V的实战演进
  • 青岛网站建设比较好河北省正定县城乡建设网站
  • 理解BFGS算法
  • 易语言反编译技巧 | 深入解析反编译原理与实用方法
  • 家居企业网站建设讯息王者荣誉网站怎么做
  • 免费个人网站域名注册建设机械网站方案
  • 网站建设网页制作软件河南企业网站定制
  • 做网站设计图用什么软件wordpress多个菜单menu
  • 人工智能训练师证书怎么考?
  • 【RAG核心维度深度解析】评估、安全、可靠性、管理及技术方案权衡
  • 【MCP安全】MCPGuard : Automatically Detecting Vulnerabilities in MCP Servers
  • 有专门做ppt的网站有哪些wordpress评论qq
  • 自己做的网站如何包装wordpress接入微信登录
  • 单位不能建设网站网站怎么做黑链接
  • Java在线编译C语言 | 实时运行与调试工具指南
  • GPU 发展简史:图形处理到通用计算的蜕变
  • 客户要做网站建设话术网站如何提高转化率
  • 外贸平台网站有哪些网站 关键词 怎么改
  • 四、nginx的优化和location匹配规则
  • 厦门快速建网站设计类的网站和简介
  • 珠海集团网站建设外包马克斯网站建设
  • 告别局域网束缚!Excalidraw结合cpolar随时随地画流程图
  • 11.12 脚本APP 网页H5游戏变APP!
  • 长春阿凡达网站建设网站的结构类型
  • AI 生成PPT
  • 网站策划与运营沪指重上3000点
  • 动手学强化学习 第6章 Dyna-Q 算法
  • 【前端】resetFields()失效:点击编辑后再点击新增,弹出的表单是编辑的数据
  • 易支付系统二开对接博瑞云音箱教程及源码