leetcode 443. String Compression(压缩字符串)

Leetcode 443. String Compression--压缩字符串 Given an array of characters, compress itin-place. The length after compression must always be smaller than or equal to the original array. Every element of the array should be acharacter(not int... 阅读详情

(Medium)
在这里插入图片描述

字符串chars中有连续出现的字母,当有连续出现的字母时,统计它出现的次数,
压缩成 “字母 + 次数”的格式,
只出现一次的不需要写次数,只写字母。
出现10次以上的,数字要分开写,比如Example3中的12, 要写成"1" 和 “2”.
不能新开辟数组写,要在原数组上写结果,返回有效长度。

思路:

感觉这个就靠观察,

需要几个变量:
1.当前字母的下标,
2.它出现的次数,
     那么下次更新字母下标时直接用当前下标+次数。
3.当前字母,
4.写入位置的下标,
     因为要在原数组上覆盖,所以要记录写入的位置,每写入一个字符下标要向右移一格。

    public int compress(char[] chars) {
        int n = chars.length;
        if(n == 1) return 1;

        char cur = chars[0]; //当前字母
        int cnt = 1;  //当前字母出现的次数
        int curIdx = 0;  //写入idx,每写入一个字符向右移动一格
        int curCharIdx = 0;  //指向当前字母的idx,+cnt即可跳到下一字母

        for(int i = 1; i <= n; i++) {
            if(i < n && chars[i] == chars[i-1]) cnt ++;
            else {            
                chars[curIdx ++] = cur;  //写入当前字母
                
                //更新当前字母,写在这里是因为后面可能出现continue,保证能更新
                curCharIdx += cnt; //下标跳到下一字母
                if(curCharIdx < n) cur = chars[curCharIdx]; //当前字母更新

                //写入当前字母出现的次数,1不需要写
                if(cnt == 1) continue;              
                if(cnt < 10) chars[curIdx++] = (char)(cnt+'0');
                else {
                    for(char c : (""+cnt).toCharArray()) {
                        chars[curIdx++] = c;
                    }
                }
                
                //更新cnt
                cnt = 1; 
            }
        }
        return curIdx;
    }
第二十七届华东杯数学建模A 题 跳台滑雪问题 完整思路模型及代码 考虑到滑行过程中的空气阻力和摩擦力对速度的影响,我们引入了不同姿态下运动员迎风面积和空气阻力系数的变化,利用牛顿第二定律建立加速度表达式,并通过数值模拟比较常见姿态下的终端速度。针对问题二,我们构建了二维空中飞行动力学模型,结合起跳速度、身体迎角、滑雪板倾角等因素,模拟运动员在空中飞行的轨迹与姿态变化,采用欧拉法对运动过程进行仿真,优化飞行路径和稳定性。仿真结果表明,运动员应在起跳后保持滑雪板与身体成“V”字形打开、重心略后倾的姿态,以增强升力、延长飞行距离并提高姿态得分。,并模拟出跳跃的轨迹和最终得分。 阅读详情

相关推荐

基于python的超市历年数据可视化分析

包含:Order_Date Sales Quantity Profit year month。所有这些物品都在美国4个地区的49个州销售,来着793位客户的5009个订单。9994行,21列数据。

m0_74872863的博客 534

String Compression(C++压缩字符串)

String Compression(C++压缩字符串)

coolsunxu的博客 762

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 696

压缩字符串StringCompression

/** * @author LemonLin * @Description :StringStringCompression * @date 19.6.10-22:59 * Given an array of characters, compress it in-place. * The length after compression must always be smaller th...

happy_bigqiang的博客 365

UE5Could not be compiled. Try rebuilding from source manually.

UE5Could not be compiled. Try rebuilding from source manually.

weixin_45417260的博客 2770

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1299

443. String Compression

Given an array of characters, compress it in-place.The length after compression must always be smaller than or equal to the original array.Every element of the array should be a character (not int) of

xdhc的博客 448

Spring AI Alibaba实战训练营-28 手把手教你用SAA+ Nacos 构建分布式 MCP 应用

本文介绍如何使用Spring AI Alibaba和Nacos构建分布式MCP应用,实现AI模型与工具服务的动态发现和调用。主要内容包括:1) 项目架构设计,包含MCP Server、Nacos注册中心和MCP Client三个核心组件;2) 环境准备要求,如Java 17+、Maven 3.6+、Nacos 3.1.0+等;3) 详细实施步骤:启动Nacos服务、注册MCP服务端、配置MCP网关聚合服务、设置MCP客户端发现机制。通过这种架构,开发者可以轻松扩展新工具服务,无需修改客户端代码,实现服务动态

program哲学 310

String Compression

F. String Compression 利用dp和前缀数组来写 dp[i] 所表示的东西是 字符串 s[0:i] (不包括 s[i])能够压缩的最短长度 bj[i][j] 表示的是字符串 s[i:j+1] (不包括 s[j+1])能够压缩的最短长度 代码: // Created by CAD on 2019/8/9. #include <bits/stdc++.h> ...

b24384504986189的博客 190

从DDPM到DDIM:深入解读《Denoising Diffusion Implicit Models》

DDIM发表在ICRL2021上,是DDPM重要的改进之一,能显著提高DDPM的样本质量、减少采样时间,并且能显式控制插值,已经被广泛应用到现在的Diffusion Models上。这篇博客和大家一起详细解读一下DDIM,认识这一伟大的模型。.........

沉迷单车的追风少年 1万+

【异常】安装OpenClaw遇到 Windows环境pnpm安装node-llama-cpp postinstall生命周期脚本执行失败完整解决方案

摘要: Windows环境下使用pnpm安装node-llama-cpp时,postinstall脚本执行失败(错误码3221225477),主要因缺少C++编译工具链或预构建二进制下载失败。解决方案: 基础排查:确保管理员权限、Node.js ≥18、路径无中文; 安装编译工具:推荐Visual Studio的“C++桌面开发”组件或windows-build-tools; 环境变量配置:强制CPU模式+国内镜像(NODE_LLAMA_CPP_FORCE_CPU=true,镜像地址替换为国内源); pnp

奶爸的编程之路,也就一周冷个三天 616

weekly contest 56 第二题 443. String Compression

题目 String Compression My SubmissionsBack to Contest User Accepted: 1210 User Tried: 1446 Total Accepted: 1223 Total Submissions: 3403 Difficulty: Easy Given an array of characters, compress it in

玉界尺的博客 620

Unity Hololens2开发|(一)环境配置

开发过程中预览和调试应用:可以在电脑上的 Unity 编辑器中以播放模式本地运行应用,并将体验流式传输到 HoloLens2。将来自 HoloLens2 的输入(视线、手势、语音和空间映射)发送到电脑,在其中内容以虚拟沉浸式视图渲染。在HoloLens2设备中,打开Settings面板,依次选择Update & Security > For Developers,打开“Developer Mode”。在开发计算机中打开控制面板,依次选择“更新和安全> 开发者选项”,打开“开发人员模式”;

游戏开发小Y的博客 14万+

leetcode 443. String Compression 压缩字符串

该文章解决LeetCode 443题"压缩字符串"问题,要求将连续重复字符压缩为字符+出现次数形式。思路是遍历字符数组,统计连续字符出现次数,当字符变化时将当前字符及其计数(若大于1)存入结果字符串。最后处理末尾字符并更新原数组。算法时间复杂度O(n),空间复杂度O(n)。核心代码使用双指针遍历,动态构建压缩结果字符串,最终返回压缩后长度。

邹九的个人博客 417

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LeetCode - 443 - 压缩字符串(string-compression)

Create by jsliang on 2019-07-29 17:15:442019-07-29 19:37:55一 目录不折腾的前端,和咸鱼有什么区别| 目录 | ...

weixin_41806099的博客 382

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java字符串原地压缩_LeetCode #443 String Compression 压缩字符串

443 String Compression 压缩字符串Description:Given an array of characters, compress it in-place.The length after compression must always be smaller than or equal to the original array.Every element of the ...

weixin_34984850的博客 189

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

leetcode 443. 压缩字符串(String Compression)

目录 题目描述: 示例 1: 示例 2: 示例 3: 进阶: 解法: 题目描述: 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成...

weixin_30319097的博客 104

【LeetCode】443. 压缩字符串(String Compression)

压缩字符串 【 英文练习 | 中文练习 】 题目描述: 给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度,数组的每个元素应该是长度为 1 的字符(不是 int 整数类型),在完成原地修改输入数组后,返回数组的新长度。 示例 1: 输入: [&quot;a&quot;,&quot;a&quot;,&quot;b&quot;,&quot;b&quot;,&quot;c&quot;,&quot;

厉兵秣码 270

leetcode 443. String Compression(字符串压缩)

leetcode 443. String Compression(字符串压缩)

Shauna_Wu的博客 2867

Leetcode443.String Compression压缩字符串

给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。   进阶: 你能否仅使用O(1) 空间解决问题?   示例 1: 输入: ["a","a","b","b","c","c","c"] 输出: 返回6,输入数组的

lMonster81 132

【leetcode刷题】[简单]443. 压缩字符串(string compression)-java

压缩字符串 string compression题目分析解答 题目 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。 进阶: 你能否仅使用O(1) 空间解决问题? 示例 1: 输入: ["a","a","b","b","c","c","c"] 输出: 返...

mikuluna的博客 491

LeetCode——443. 压缩字符串(String Compression)[中等]——分析及代码(Java)

LeetCode——443. 压缩字符串[String Compression][中等]——分析及代码[Java]一、题目二、分析及代码1. 模拟(1)思路(2)代码(3)结果三、其他 一、题目 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需要向 s 追加字符,后跟这一组的长度。 压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的

江南土豆的博客 423

leetcode 443. String Compression 压缩字符串+暴力遍历

Given an array of characters, compress it in-place. The length after compression must always be smaller than or equal to the original array. Every element of the array should be a character (not int...

JackZhangNJU的专栏 679

[Swift]LeetCode443. 压缩字符串 | String Compression

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

weixin_30690833的博客 153

LeetCode 443. String Compression (压缩字符串)

题目标签:String  这一题需要3个pointers:   anchor:标记下一个需要存入的char   read:找到下一个不同的char   write:标记需要存入的位置  让 read指针 去找到下一个char,找到后先把 anchor 位置上的 char 存入 write 位置, 然后把 char 重复的次数 转化为 char 存入下一个位置,最后重新设定 anchor ...

weixin_30337251的博客 110

Leetcode算法学习日志-443 String Compression

Leetcode 443 String Compression 题目原文 Given an array of characters, compress it in-place. The length after compression must always be smaller than or equal to the original array. Every element of

Zarlove的博客 847
上一篇: 实例分割 mask loss异常值,训练过程报错 debug记录
下一篇: cv2.addWeighted 操作 np.array 踩坑记录
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值