快慢指针在字符串中的应用-443. 压缩字符串

题目链接及描述

443. 压缩字符串 - 力扣(LeetCode)

 

 

题目分析

        这个题目总体不算太难,如果之前接触过双指针(快慢指针)的话,比较好做。题目可以理解为计算数组中对应各个连续字符出现的次数,并将次数记录下来。可以使用快慢指针解决,慢指针指向连续字符的第一个下标处,快指针不断往后移动,当快指针对应字符和慢指针对应的字符不相等时,说明此时得到了一个连续的同字符。此时可以将慢指针对应的字符和快慢指针间的长度记录下来。

代码编写

class Solution {public int compress(char[] chars) {Deque<Character> list = new ArrayDeque<>();int len = chars.length, slow = 0;for(int fast = 0; fast <= len; fast++){if(fast == len || chars[fast] != chars[slow]){list.addLast(chars[slow]);int diff = fast - slow;if(diff > 1){String str = String.valueOf(diff);for(char ch : str.toCharArray()){list.addLast(ch);}}slow = fast;}}int idx = 0;while(!list.isEmpty()){chars[idx++] = list.pollFirst();}return idx;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

测试基础13:测试用例设计方法-错误推断、因果图判定表

课程大纲 1、错误推测法 靠主观经验和直觉来推测可能容易出现问题的功能或场景&#xff0c;设计相关测试用例进行验证。 2、因果图&判定表 2.1定义 因果图和判定表是分析和表达多逻辑条件下&#xff0c;执行不同操作的情况的工具。 &#xff08;因果图和判定表配合使用&a…

生产运作管理--第六版陈荣秋

第一章&#xff1a; 生产运作的分类有哪些&#xff1f; 答&#xff1a;可以分为两大类&#xff1a; 产品生产: 产品生产是通过物理或者化学作用将有形输入转化为有形输出的过程。 按照工艺过程的特点&#xff0c;可以分为&#xff1a; 连续性生产&#xff1a;物料均匀、连续的按…

TCP/IP协议,三次握手,四次挥手

IP - 网际协议 IP 负责计算机之间的通信。 IP 负责在因特网上发送和接收数据包。 HTTP - 超文本传输协议 HTTP 负责 web 服务器与 web 浏览器之间的通信。 HTTP 用于从 web 客户端&#xff08;浏览器&#xff09;向 web 服务器发送请求&#xff0c;并从 web 服务器向 web …

TCP三次握手和四次挥手过程简介(抓包分析,简单易懂,小白)

接上篇 传输层部分 链路层、网络层、传输层和应用层协议详解分析-CSDN博客文章浏览阅读689次&#xff0c;点赞10次&#xff0c;收藏15次。wireshark抓包分析-CSDN博客wireshark是网络包分析工具网络包分析工具的主要作用是尝试捕获网络包&#xff0c;并尝试显示包的尽可能详细…

6年前端社招一个月上岸20K经历,附简历

面经哥只做互联网社招面试经历分享&#xff0c;关注我&#xff0c;每日推送精选面经&#xff0c;面试前&#xff0c;先找面经哥 本人普通本科6年前端经历&#xff0c;从年前开始准备跳槽&#xff0c;一开始感觉自己履历算不上突出&#xff0c;经历过迷茫和沮丧的时候&#xff0…

【计算机毕业设计】基于Springboot的B2B平台医疗病历交互系统【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

MySQL日志(二):MySQL抖动

一条SQL语句&#xff0c; 正常执行的时候特别快&#xff0c; 但是有时也不知道怎么回事&#xff0c; 它就会变得特别慢&#xff0c; 并且这样的场景很难复现&#xff0c; 它不只随机&#xff0c; 而且持续时间还很短。 看上去&#xff0c; 这就像是数据库“抖”了一下。 今天&…

redis 笔记2之哨兵

文章目录 一、哨兵1.1 简介1.2 实操1.2.1 sentinel.conf1.2.2 问题1.2.3 哨兵执行流程和选举原理1.2.4 使用建议 一、哨兵 1.1 简介 上篇说了复制&#xff0c;有个缺点就是主机宕机之后&#xff0c;从机只会原地待命&#xff0c;并不能升级为主机&#xff0c;这就不能保证对外…

Linux中Web服务器配置和管理(Apache)

文章目录 一、WEB服务器介绍1.1、WEB服务器概述1.2、WEB服务器的发展历史1.3、WEB服务器的优点与缺点1.4、WEB服务器的工作流程 二、Apache介绍2.1、Apache是什么2.2、Apache的发展史与应用场景2.3、Apache的特点2.4、Apache的工作原理2.5、Apache的模块 三、安装使用Apache服务…

Apache druid未授权命令执行漏洞复现

简介 Apache Druid是一个实时分析型数据库&#xff0c;旨在对大型数据集进行快速的查询分析&#xff08;"OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景&#xff0c;同时&#xff0c;Druid也通常被用来助力分析型应用的图…

牛客仓鼠的鸡蛋

分析一下判断语句 如果能放就输出位置 不能放就输出-1 不能放的条件是最大值小于要放的鸡蛋数量&#xff0c;线段树维护最大值 放的位置用线段树二分 每个篮子不能放超过k堆鸡蛋&#xff0c;记录一下每个篮子放的次数&#xff0c;次数等于k后给最大值附上0即可 // Proble…

使用powershell筛选AD域控不能自主更改的用户并变更

# 查询“用户不能更改密码”为勾选状态的所有域用户&#xff0c;将域账户、姓名、勾选状态作为结果保存到C:\result\result.csvGet-ADUser -Filter * -Properties CannotChangePassword | Where-Object { $_.CannotChangePassword -eq $true } | Select SamAccountName, Name, …

javaWeb项目-ssm+vue在线购物系统功能介绍

本项目源码&#xff1a;java-ssmvue在线购物系统的设计与实现源码说明文档资料资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;sprin…

UnityAPI学习之延时调用(Invoke)

延时调用&#xff08;Invoke&#xff09; 当我们进行简单函数的延时调用不想使用协程时&#xff0c;我们可以使用Invoke()函数 using System.Collections; using System.Collections.Generic; using UnityEngine;public class NO15_Invoke : MonoBehaviour {//显示在每次生成…

MySQL 日志(一)

本篇主要介绍MySQL日志的相关内容。 目录 一、日志简介 常用日志 一般查询日志和慢查询日志的输出形式 日志表 二、一般查询日志 三、慢查询日志 四、错误日志 一、日志简介 常用日志 在MySQL中常用的日志主要有如下几种&#xff1a; 这些日志通常情况下都是关闭的&a…

MySQL日志(三):数据安全

先来看一个结论&#xff1a;只要redo log和binlog保证持久化到磁盘&#xff0c; 就能确保MySQL异常重启后&#xff0c; 数据可以恢复。 binlog写入逻辑 binlog的写入逻辑比较简单&#xff1a; 事务执行过程中&#xff0c; 先把日志写到binlog cache&#xff0c; 事务提交的时候…

C++11列表初始化{}

列表初始化 C11后为了能让自定义类型也能够快速被初始化新增 {} 内置类型变量 int a1 { 10 };int a2{ 11 };int a3 { 1 2 };int a4{ 1 2 }; 注意&#xff1a;列表初始化可以在{}之前使用等号&#xff0c;其效果与不使用没有什么区别。 内置类型数组 int arr1[] { 1,2,3…

【数据结构陈越版笔记】进阶实验1-3.1:两个有序序列的中位数

我这答案做的可能不对&#xff0c;如果不对&#xff0c;欢迎大家指出错误&#xff0c;思路大部分直接写在注释中了。 进阶实验1-3.1&#xff1a;两个有序序列的中位数 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列 A 0 , A 1 , . . . , A n −…

使用sherpa-ncnn进行中文语音识别(ubuntu22)

获取该开源项目的渠道&#xff0c;是我在b站上&#xff0c;看到了由csukuangfj制作的一套语音识别视频。以下地址均为csukuangfj在视频中提供&#xff0c;感谢分享&#xff01; 新一代Kaldi RISC-V: VisionFive2 上的实时中英文语音识别_哔哩哔哩_bilibili 开源项目地址&…

SW参数化设计软件 慧德敏学

随着产品设计信息化进程的不断推进&#xff0c;企业运用三维CAD系统进行设计正日趋广泛&#xff0c;三维参数化设计无疑是提高设计效率的好方法之一。所谓参数化设计就是将模型中的约束信息变量化&#xff0c;使之成为可以调整的参数&#xff0c;赋以不同数值就可得到不同大小和…