字符串压缩

ops/2024/11/13 9:11:10/

题目链接

字符串压缩

题目描述

注意点

  • 字符串长度在[0, 50000]范围内
  • 若“压缩”后的字符串没有变短,则返回原先的字符串
  • 字符串中只包含小写英文字母(a至z)

解答思路

  • 模拟思路,使用pre存储当前位置的前一个字符,使用sum存储前一个字符重复的数量,当访问到当前位置的字符c时,如果c和pre相同,则只需要将sum加1,如果c和pre不同,则需要先将pre的数量写到结果中,然后将c写到结果中,还要更新pre和sum的值

代码

java">class Solution {public String compressString(String s) {StringBuilder sb = new StringBuilder();char pre = '0';int sum = 0;for (char c : s.toCharArray()) {if (c == pre) {sum++;continue;}if (sum != 0) {sb.append(sum);}sb.append(c);pre = c;sum = 1;}if (sum != 0) {sb.append(sum);}return sb.length() >= s.length() ? s : sb.toString();}
}

关键点

  • 注意遍历完字符串后,还要将最后的字符的出现次数写入到结果中

http://www.ppmy.cn/ops/46531.html

相关文章

修改文档日期神器 - Python打造日期修改器

这篇文章将介绍一款使用 Python 开发的实用工具 - 日期修改器。它可以帮助您轻松修改 Word (.docx) 和 PDF 文档的日期信息,满足日常办公和文档整理的需求。 C:\pythoncode\new\modifyfiledate.py 软件功能 支持修改 Word (.docx) 日期信息。允许选择要修改的日期…

「架构」单元测试及运用

在参与管理和研发软件项目的过程中,单元测试的实际运用对于确保最终产品的质量至关重要。以下是一些实际运用的案例和说明。 静态测试的实际运用 在TechCorp的电子商务平台项目中,静态测试作为代码质量保证的第一道防线。开发团队在编写代码的同时,使用SonarQube等静态代码…

Rust struct

Rust struct 1.实例化需要初始化全部成员变量2.如果需要实例化对象可变,加上mut则所有成员变量均可变 Rust支持通过已实例化的对象,赋值给未赋值的对象的成员变量 #![allow(warnings)] use std::io; use std::error::Error; use std::boxed::Box; use s…

【杂项】几个快捷键提高你的办公效率(装13使用)

前言 其实在Windows下不同的IDE也支持在文本编辑的时候,让你不需要使用鼠标也能够快速的操作。下面以VSCODE为例子 从当前位置开始选中 shift 键盘下键多行插入 ctrl alt 鼠标下键 退出多行插入esc回到一行文字开头 Home 键,回到一行文字结尾 End。…

新浪测试社招要个25K,第一次面大厂挂了

一面 1、讲下被测系统和你负责测试的模块功能? 2、为什么选择这个测试框架,这个测试框架有什么优缺点? 3、测试文件的目录,包含哪些包,这些之间是怎么调用的? 4、UI自动化和接口自动化都是怎么做的&…

计算机组成原理期末复习

1、RISC与CISC的比较,那种指令集更快? RISC(精简指令集计算机)和CISC(复杂指令集计算机)是两种不同的计算机指令集架构,各有其优缺点。 RISC(精简指令集计算机): RISC指令集的设计理念是通过减少指令的数量和复杂度来提高处理器的执行效率。RISC指令通常在一个时钟周…

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境(IDE),适用于软件开发人员和团队。使用此应用程序,您可以构建和调试现代Web应用程序,并利用扩展帮助探索几乎任何编程语言。…

轻松拿捏C语言——【文件操作】

🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊ 🎉创作不易,请多多支持🎉 🌈感谢大家的阅读、点赞、收藏和关注💕 🌹如有问题,欢迎指正 目录 &#x1f…