刷题记录6.24

438. 找到字符串中所有字母异位词icon-default.png?t=N7T8https://leetcode.cn/problems/find-all-anagrams-in-a-string/

这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。

对于这个我们可以转化成计算字母出现的频率,如果频率一致即符合要求。

这道题的思路:滑动窗口

根据题目要求,我们需要在字符串 s 寻找字符串 p 的异位词。

因为字符串 p 的异位词的长度一定与字符串 p 的长度相同,所以我们可以在字符串 s 中构造一个长度为与字符串 p 的长度相同的滑动窗口,并在滑动中维护窗口中每种字母的数量当窗口中每种字母的数量与字符串 ppp 中每种字母的数量相同时,则说明当前窗口为字符串 ppp 的异位词。(这个思路真的很妙

可以使用数组来存储字符串 ppp 和滑动窗口中每种字母的数量

将字符转成数字0~26,在存储时将字符-‘a'.charCodeAt()

charCodeAt()是一个字符串方法,用于获取指定位置字符的Unicode编码,返回一个表示给定索引处字符的Unicode值的整数。

str.charCodeAt(index)

其中,`str`是要进行操作的字符串,`index`是要获取字符编码的位置索引。

索引从0开始,表示字符串中的第一个字符。

正确用法

  1. 直接在字符串中使用:

    var str = "Hello"; console.log(str.charCodeAt(0)); // 输出:72 (H的Unicode编码)

    需要注意的是,如果提供的索引超出字符串的长度范围,`charCodeAt()`将返回NaN(非数字)】

  2. 在单个字符上使用:

var char = 'A'; console.log(char.charCodeAt(0)); // 输出:65 ('A'的Unicode编码)

(单个字符时候也可以不写0)

  1. 通过获取字符串中的一个字符再使用:

    var str = "World"; 
    var char = str.charAt(2); // 获取字符串中的第三个字符 'r' 
    console.log(char.charCodeAt(0)); // 输出:114 ('r'的Unicode编码)

言归正传,对于题目,初始时可以做判断,当字符串 s 的长度小于字符串 p 的长度时,字符串 s 中一定不存在字符串 p 的异位词,可以直接返回掉。

但是因为字符串 s 中无法构造长度与字符串 p 的长度相同的窗口,所以这种情况需要单独处理

这里面可以注意一下,滑动窗口滑动处理的妙处。

遍历时,当前 i 指的是滑动窗口前一个字符,往后滑动时要删除前一个字符的记录,加上窗口后的字符记录。

思路捋清楚就很简单了。

判断是否相同时,只需要将记录字母出现频率的数组用toString转为字符串对比即可。

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jxbrowser是一个基于Java的Web浏览器组件,支持多种操作系统和主流的Web技术。maven是一个Java的开源构建工具,它可以帮助开发者自动管理依赖,构建项目和发布软件。jxbrowser 6.24.3 maven则是指使用maven来构建jxbrowser 6.24.3版本的应用程序。 在使用jxbrowser 6.24.3 maven构建项目之前,需要在pom.xml文件中添加相关依赖,包括jxbrowser的核心库、平台支持库、maven插件以及许可证文件。之后可以使用maven命令行工具或者通过IDE集成的maven插件来构建应用程序。 使用jxbrowser 6.24.3 maven可以帮助开发者快速构建基于jxbrowser的应用程序,并且通过maven的依赖管理机制,可以轻松地升级和切换jxbrowser的版本。除此之外,maven还可以帮助开发者自动下载和管理相关的依赖库,减轻了开发者的负担。 总之,使用jxbrowser 6.24.3 maven可以让开发者更加方便地构建基于jxbrowser的应用程序,提高开发效率和软件质量。 ### 回答2: JxBrowser 6.24.3是一个用于Java Swing应用程序和JavaFX应用程序的库,它提供了嵌入式浏览器解决方案。使用该库可以将现代浏览器的功能整合到应用程序中,以便在应用程序中呈现HTML内容。此外,JxBrowser还提供了很多的API接口,使得Java开发人员能够方便地控制浏览器的行为,比如支持HTML5,JavaScript和CSS3,以及定制浏览器的样式和行为。 Maven是一个Java项目管理工具,JxBrowser库同样也提供了Maven库,使得开发人员能够更方便地集成JxBrowser到他们的项目中。使用Maven可以自动管理项目依赖,从而减少项目集成的复杂度。对于需要在Java Swing应用程序和JavaFX应用程序中集成浏览器的开发人员来说,Maven集成JxBrowser可以帮助他们快速创建高质量的应用程序,从而提升生产效率。 总之,JxBrowser 6.24.3 maven是一个非常方便的工具,它可以让开发人员更加轻松地将现代浏览器嵌入到他们的Java应用程序中。使用该库可以为应用程序带来新的功能和体验。同时,Maven也为开发人员提供了自动化管理依赖的能力,从而简化了集成步骤。 ### 回答3: JxBrowser是一个基于Google Chromium的Java浏览器控件。6.24.3是JxBrowser的版本号,它是该工具的一个更新版本。 Maven是Java项目管理工具,可以通过它来配置和管理依赖项。 通过Maven引入JxBrowser 6.24.3,可以在Java项目中使用JxBrowser开发浏览器的相关功能。在Maven的pom.xml文件中,需添加JxBrowser的依赖。 在使用JxBrowser进行Java开发时,可以实现浏览器的自定义化,如设置UA,Cookie,代理等。同时还可以通过JxBrowser实现网页截图、读取页面源码、模拟键盘、鼠标操作等功能。 总之,通过引入JxBrowser 6.24.3 Maven依赖,可以让Java开发者更方便地使用JxBrowser,并实现更多的浏览器控制和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值