【LeetCode每日一题:809.情感丰富的文字~~~双指针+计数器】

news/2024/5/1 15:26:54/文章来源:https://blog.csdn.net/Coder_ljw/article/details/128031914

题目描述

有时候人们会用重复写一些字母来表示额外的感受,比如 “hello” -> “heeellooo”, “hi” -> “hiii”。我们将相邻字母都相同的一串字符定义为相同字母组,例如:“h”, “eee”, “ll”, “ooo”。

对于一个给定的字符串 S ,如果另一个单词能够通过将一些字母组扩张从而使其和 S 相同,我们将这个单词定义为可扩张的(stretchy)。扩张操作定义如下:选择一个字母组(包含字母 c ),然后往其中添加相同的字母 c 使其长度达到 3 或以上。

例如,以 “hello” 为例,我们可以对字母组 “o” 扩张得到 “hellooo”,但是无法以同样的方法得到 “helloo” 因为字母组 “oo” 长度小于 3。此外,我们可以进行另一种扩张 “ll” -> “lllll” 以获得 “helllllooo”。如果 S = “helllllooo”,那么查询词 “hello” 是可扩张的,因为可以对它执行这两种扩张操作使得 query = “hello” -> “hellooo” -> “helllllooo” = S。

输入一组查询单词,输出其中可扩张的单词数量。

示例:

输入:
S = “heeellooo”
words = [“hello”, “hi”, “helo”]
输出:1
解释:
我们能通过扩张 “hello” 的 “e” 和 “o” 来得到 “heeellooo”。
我们不能通过扩张 “helo” 来得到 “heeellooo” 因为 “ll” 的长度小于 3 。

提示:

0 <= len(S) <= 100。
0 <= len(words) <= 100。
0 <= len(words[i]) <= 100。
S 和所有在 words 中的单词都只由小写字母组成。

求解思路

  1. 这道题目是通过双指针来求解的,遍历数组中每个字符串,依次和目标字符串做比较,通过俩个指针分别指向原始字符串和依次遍历的字符串,如果他们开始就不相等,那么直接结束,进行下一个字符串的判断,否则,分别通过一个计数器来维持当前字符串所处位置的字符个数,最后比较这俩个计数器的值,如果是被遍历的字符串当前位置计数器的个数是大于原始要求的字符串的个数,那么不符合题目要求,直接放回结束,被遍历的字符串当前位置计数器的个数不等于原始要求的字符串的个数,并且原始位置的计数器维持的个数是小于3的,那么直接结束,最后,如果俩个指针都到达了俩个字符串结束的位置,那么最终的结果加1,依次遍历每个过程,累加最后的结果即可。

实现代码

class Solution {public int expressiveWords(String s, String[] words) {int res=0,n=words.length;for(int i=0;i<n;i++){int c1=0,c2=0;String str=words[i];while(c1<s.length()&&c2<str.length()){if(s.charAt(c1)!=str.charAt(c2)){break;}   char c=s.charAt(c1);int cnt1=0;while(c1<s.length()&&s.charAt(c1)==c){cnt1++;c1++;}int cnt2=0;while(c2<str.length()&&str.charAt(c2)==c){cnt2++;c2++;}if(cnt2>cnt1){break;}if(cnt2!=cnt1&&cnt1<3){break;}if(c1==s.length()&&c2==str.length()) res++;}}return res;}
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_36561.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

101个CV模型集体开源,魔搭社区视觉AI深度解析

作者&#xff1a;谢宣松 达摩院开放视觉智能团队 11月3日&#xff0c;在2022云栖大会上&#xff0c;阿里达摩院联手 CCF 开源发展委员会共同推出了 AI 模型社区“魔搭”ModelScope&#xff0c;旨在降低 AI 的应用门槛。 AI 模型较为复杂&#xff0c;尤其是要应用于行业场景&…

sklearn.metrics模块重要API总结(持续更新)

目录前言各类指标分类指标&#xff08;Classification metrics&#xff09;sklearn.metrics.accuracy_scoresklearn.metrics.aucaverage_precision_score (AP)回归指标&#xff08;Regression metrics&#xff09;多标签排序指标&#xff08;Multilabel ranking metrics&#x…

天宇优配|北上广深角逐“国字号”数据交易所 行业爆点

今日&#xff0c;上海数据生意地点揭牌一周年之际&#xff0c;将发动数据生意节&#xff0c;并将探究树立数交所国际板。10天前&#xff0c;深圳数据生意所正式揭牌。至此&#xff0c;北上广深四个一线城市均已树立数据生意所。 数据作为新型生产要素&#xff0c;正成为各地争相…

Linux登陆配置虚拟机

启用虚拟机一、启动虚拟机1、登录虚拟机2、查看IP地址3、能否PING通外网二、配置静态IP地址1、修改网卡配置文件2、重启网络服务3、重启虚拟机4、查看修改后的IP地址5、测试虚拟机能否Ping通外网三、测试宿主机与虚拟机能否相互Ping通1、测试宿主机能否Ping通虚拟机2、测试虚拟…

云原生系列 六【轻松入门容器基础操作】

✅作者简介&#xff1a; CSDN内容合伙人&#xff0c;全栈领域新星创作者&#xff0c;阿里云专家博主&#xff0c;华为云享专家博主&#xff0c;掘金后端评审团成员 &#x1f495;前言&#xff1a; 最近云原生领域热火朝天&#xff0c;那么云原生是什么&#xff1f;何为云原生&a…

户外运动耳机如何选择、最优秀的五款户外运动耳机推荐

有些人花时间在户外纯粹是为了听听大自然的声音。其他人可能不想在没有娱乐或鼓舞人心的音频选择的情况下跑步、徒步、散步或骑自行车。找到适合锻炼的耳机相当简单&#xff0c;就像健身耳机一样&#xff0c;您会希望这些耳机能够舒适、安全地贴合您的耳朵&#xff0c;这样它们…

m基于PTS+TR的OFDM系统PAPR联合抑制算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 部分传输序列(Partial Transmit Sequence , PTS)由于其不受载波数量限制&#xff0c;并且能够有效的&#xff0c;无失真的降低OFDM信号峰均比&#xff0c;而受到广泛关注。部分传输序列算…

docker容器网络

第七章容器网络 Docker网络 veth pair&#xff1a;成对出现的一种虚拟网络设备&#xff0c;数据从一端进&#xff0c;从另一端出。用于解决网络命名空间之间隔离。 docker0&#xff1a;网桥是一个二层网络设备&#xff0c;通过网桥可以将Linux支持的不同端口连接起来&…

开源让这位 00 后逆袭成为各类大奖收割者

OpenI 启智社区在 2022 年推出的开源打榜活动&#xff0c;聚集了一帮非常活跃的开发者&#xff0c;上榜者覆盖了来自全国高校、科研机构、企业达 100 多家。其中&#xff0c;高校学生占 65%&#xff0c;近 60%的上榜者是 90 后&#xff0c;32%的上榜者是 00 后。真是 00 后浪推…

41、集合

一、基本介绍&#xff1a; 1、引入&#xff1a; &#xff08;1&#xff09;前面我们保存多个数据使用的是数组&#xff0c;但数组不足的地方有&#xff1a; 1&#xff09;长度开始时必须指定&#xff0c;而且一旦指定&#xff0c;不能更改 2&#xff09;保存的必须为同一类…

Socket网络编程

参考博客&#xff1a;https://blog.csdn.net/shuux666/article/details/124023652 1、环境查看 通过cmd窗口的命令:ipconfig查看本机IP地址 查看网络情况是否正常:ping百度官网 2、Socket概述 3、套接字建立连接过程 4、Socket网络编程 基本的Socket编程&#xff1a; 本实…

异常(Exception)

随着面向对象的结束&#xff0c;我们的JavaSE也就接近了尾声&#xff0c;还有两个章节没有去梳理&#xff0c;常用类和异常&#xff0c;本章先讲异常&#xff0c;剩下的常用类后面再来补。 废话不多说&#xff0c;直接开始本章的内容。 1. 认识异常 引出&#xff1a; 假设 n…

ArcGIS综合制图教程,简单上手!

目的 1、了解专题地图组成的各个要素&#xff1b; 2、掌握ArcGIS编辑专题图的方法和步骤&#xff1b; 实习内容 使用ArcGIS生成1&#xff1a;200万比例尺的浙江省县级行政区划图&#xff0c;并输出成像文件。 实习步骤 一、将ArcGIS切换到Layout视图&#xff0c;并调整页面…

[附源码]java毕业设计疫情期间物资分派管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C++初阶(stack+queue)

stack是一种容器适配器&#xff0c;专门用在具有后进先出 (last-in first-out)操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供一组…

精华推荐 | 【深入浅出RocketMQ原理及实战】「性能原理挖掘系列」透彻剖析贯穿RocketMQ的系统服务底层原理以及高性能存储设计挖掘深入

设计背景 消息中间件的本身定义来考虑&#xff0c;应该尽量减少对于外部第三方中间件的依赖。一般来说依赖的外部系统越多&#xff0c;也会使得本身的设计越复杂&#xff0c;采用文件系统作为消息存储的方式。 RocketMQ存储机制 消息中间件的存储一般都是利用磁盘&#xff0…

餐饮+KTV融合消费模式,会受消费者喜欢吗?

这个五一&#xff0c;我们雨科网门店系统的客户&#xff0c;大侠火锅店终于是将KTV搬到了自己的门店里&#xff0c;运用门店小程序功能及纸质代金券及礼品的噱头吸引客户进店&#xff0c;只需消费并和任意一人合唱一首歌即可领取&#xff0c;消费者在等餐或放松的时候一键点歌演…

OneAuth 2022.11.23版本更新内容

2022.11.23版本更新内容&#xff1a; 新增IdP飞书 云目录增加对Group的支持GWA浏览器插件适配性优化自定义授权服务器优化&#xff0c;适应RBAC、ABAC等多种场景授权IdP 北森优化&#xff0c;适配自定义的属性租户的部分试用功能需要联系后台开通其他一些Bug的修复 标题新增 …

PDF预览完整解决方案及各种兼容(VUE版)

PDF预览完整解决方案及各种兼容&#xff08;VUE版&#xff09; PDF预览完整解决方案及各种兼容&#xff08;VUE版&#xff09; - 掘金 前端学习使者正在上传…重新上传取消 2021年11月12日 16:57 阅读 2547 一、利用iframe 就一行代码就够了&#xff0c;只能满足最基本的…

ThinkPHP5目录结构

文章目录一、TP5的框架的下载1、[采用fastAdmin安装](https://www.fastadmin.net/download.html)2、Composer安装2.1 Composer提供的服务3、Git安装二、使用Composer安装后目录结构2.1 补充获取 Git 仓库git的工作机制一、TP5的框架的下载 1、采用fastAdmin安装 FastAdmin是一…