当前位置: 首页 > article >正文

Java | Leetcode Java题解之第443题压缩字符串

题目:

题解:

class Solution {
    public int compress(char[] chars) {
        int n = chars.length;
        int write = 0, left = 0;
        for (int read = 0; read < n; read++) {
            if (read == n - 1 || chars[read] != chars[read + 1]) {
                chars[write++] = chars[read];
                int num = read - left + 1;
                if (num > 1) {
                    int anchor = write;
                    while (num > 0) {
                        chars[write++] = (char) (num % 10 + '0');
                        num /= 10;
                    }
                    reverse(chars, anchor, write - 1);
                }
                left = read + 1;
            }
        }
        return write;
    }

    public void reverse(char[] chars, int left, int right) {
        while (left < right) {
            char temp = chars[left];
            chars[left] = chars[right];
            chars[right] = temp;
            left++;
            right--;
        }
    }
}

http://www.kler.cn/a/326402.html

相关文章:

  • 使用 Python 和 Py2Neo 构建 Neo4j 管理脚本
  • 如何用python将pdf转换为json格式
  • shell脚本配置nginx
  • 腾讯云内容合规基于springboot架构设计
  • 使用 Ant Design Vue 自定渲染函数customRender实现单元格合并功能rowSpan
  • RedHat7—Linux中kickstart自动安装脚本制作
  • ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!
  • 数据中心解决方案
  • 手写体识别毕设——人工智能和深度学习技术的快速发展
  • 前端安装 lerna
  • Knots_3D 9.3.0 一款教你绑绳结的手机应用
  • 高标准农田灌区信息化:为农业可持续发展注入新动力
  • 开源模型应用落地-qwen2.5-7b-instruct-LoRA微调-LLaMA-Factory-单机单卡-V100(十八)
  • 抽象工厂模式和工厂模式的区别
  • 使用 IntelliJ IDEA 连接到达梦数据库(DM)
  • 大厂面试真题- RPC通讯协议如何保证数据完整性
  • 谷歌网站收录查询,怎么查看网站在谷歌的收录情况
  • 1. AOSP源码导入到AndroidStudio
  • JWT 令牌生成报错
  • Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制
  • 8.代码风格调试%结课竞赛
  • Ubuntu篇——Ubuntu20.04备份成ISO镜像文件并安装到其他电脑上(完整步骤)
  • 安全无忧,简单便捷:打造财富通开锁小程序
  • 根据现有html里的元素上面动态创建el-tooltip组件并显示的几种方式
  • js中数组操作filter()、some()、every()等函数
  • 五,MyBatis-Plus 当中的 “ActiveRecord模式”和“SimpleQuery工具类”(详细实操)