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

nh网站建设商旅平台app下载

nh网站建设,商旅平台app下载,网站开发培训学院,wordpress修改域名登录后台438. 找到字符串中所有字母的异位词 题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 输入输出示例及数据范围 思路 这道题的思路其实很简单,就是一个滑动窗口的裸题&a…

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

在这里插入图片描述

题目描述

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。

输入输出示例及数据范围

在这里插入图片描述

思路

这道题的思路其实很简单,就是一个滑动窗口的裸题,但是 LeetCode 官方题解当中给出的 Golang 解法非常适合学习,因此通过本篇文章进行记录。

具体来说,Golang 与 C++ 不同,Golang 的 slice 不能比较,因为 slice 是引用类型,而 C++ 的 vector 之间可以相互比较。但 Golang 的数组之间可以相等比较,前提是数组的类型完全相同【需要注意的是,数组的长度也是数组类型的一部分】。

解决这道题要使用数组来完成。具体来说,我们开两个长度为 26 的整型数组,用于存储子串中字符的个数。我们需要用 s 串的子串来匹配 p 串,如果 p 的长度在开始时就大于 s,那么答案为空。否则我们先记录 p 串的长度。题解当中同时统计 p 串和 s 串从 0 开始到 len(p) - 1 区间内的字符个数,如果二者匹配,则 0 是答案的一部分,代表从 0 开始的 s 子串与 p 匹配。

之后,官方题解用到了数组的切片,这一点我一开始确实没想到。在 for loop 中从 0 遍历到 len(s) - len(p) - 1,然后统计 i + 1i + len(p) + 1 这个区间内 s 子串的字符个数。统计完成后,再与 p 串比较,如果两个数组相等,则模式匹配成功,记录 i + 1 作为答案的一部分即可。

Golang 代码

func findAnagrams(s string, p string) []int {ans := []int{}if len(s) < len(p) {return ans}ms, mp := [26]int{}, [26]int{}for i, ch := range(p) {ms[s[i] - 'a'] ++mp[ch - 'a'] ++}if ms == mp {ans = append(ans, 0)}for i, ch := range(s[:len(s) - len(p)]) {ms[ch - 'a'] --ms[s[i + len(p)] - 'a'] ++if ms == mp {ans = append(ans, i + 1)}}return ans
}
http://www.dtcms.com/wzjs/338080.html

相关文章:

  • 注册一家设计公司流程小辉seo
  • 家居品牌网站建设百度招商客服电话
  • 做政府门户网站方案成功营销案例100例
  • 用二级域名做的网站算新站吗新闻20条摘抄大全
  • 网站建设销售工作怎么样网站seo优化外包顾问
  • 温州做企业网站如何在百度推广网站
  • behanceseo黑帽技术
  • 越南网站怎么做霸榜seo
  • 有哪些可以做问卷的网站自己有产品怎么网络销售
  • 已经有网站了 怎么做app推广发布任务平台app下载
  • 榆林网站建设熊掌号最新网站推广方法
  • 南康网站建设公司线上网络平台推广
  • 济南网站建设优化公司市场调研的方法有哪些
  • 关于医院建设的政府机构网站苏州市网站
  • 快速网站开发介绍成人大学报名官网入口
  • 建筑网官方网站网上营销推广
  • 求一个好看的网站漯河seo推广
  • 电子商务网站建设与维护致谢词打造龙头建设示范
  • wordpress 4.4.15镇江网站seo
  • 济南网站建设正规公司哪家好模板免费下载网站
  • 栾城网站建设百度站长平台网页版
  • app应用网站html5模板免费的网站推广平台
  • 网站开发前端要学什么软件免费建设网站平台
  • 做任务领佣金的网站源码短视频推广平台
  • 网站给篡改了要怎么做怎么在百度上发布信息
  • 古交网站建设推广南宁seo团队哪家好
  • 网站规划与维护如何联系百度推广
  • 网站在哪里变更备案信息企业网站设计的基本内容包括哪些
  • 网络优化大师app四川企业seo
  • 长沙网站建设哪里好网站seo外包