专栏首页Java那些事每天一道leetcode443-压缩字符串

每天一道leetcode443-压缩字符串

昨天的题解

题目

每天一道leetcode443-压缩字符串 分类:字符串

题目详述

给定一个字符串,逐个翻转字符串中的每个单词。

示例:

输入: "the sky is blue", 输出: "blue is sky the". 说明:

无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

题目详解

思路 代码(安卓机代码可以移动,苹果机不行,最近我在寻找一个新的代码排版,PC端打开没有问题)

先放个图片,代码排版有问题的看图片

test.png

 
class Solution {
    public int compress(char[] chars) {
        int count = 1; 
        int index = 0;
        for (int i = 0; i < chars.length; i++) {
            if (i + 1 == chars.length || chars[i] != chars[i+1]) {
                chars[index++] = chars[i];
                if (count > 1) {
                    String temp = String.valueOf(count);
                    for(int k=0;k<temp.length();k++)
                        chars[index++] = temp.charAt(k);
                }
                count = 1;
            }
            else {
                count++;//统计重复字符的个数
            }
        }
        return index;
    }
}

代码讲解

  • 6行就是如果一个字符和它的下一个字符不相等了,首先是chars[index] = chars[i] 这行就是把比如a,a,b,b,b就是把数组i的位置指向第一个b,好重新开始新的一轮的计算重复字符的个数;
  • 8-12行就是如果字符的个数是大于1的那么就需要统计这个数字,然后10-11行就是把这个数字的变成字符串,取每一个字符赋值到字符数组中
  • 13行 重新把count置位1因为一个字符至少出现一次
  • 15-17行就是如果不相等,统计字符出现的次数

本文分享自微信公众号 - 程序员乔戈里(CXYqiaogeli),作者:乔戈里qgl

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java递归实现字符串的排列和组合

    我们在笔试中经常会遇到需要对字符串进行排列或者组合的题目。本篇文章对字符串的排列和组合进行递归版本的实现。

    乔戈里
  • (修订)MySQL优化/面试,看这一篇就够了

    price decimal(8,2)有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数)

    乔戈里
  • MySQL优化/面试,看这一篇就够了

    price decimal(8,2)有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数)

    乔戈里
  • Python的import vs from ... import

    文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

    Tyan
  • 《Prometheus监控实战》第7章 可靠性和可扩展性

    yeedomliu
  • 腾讯云DNSPod域名API申请Let’s Encrypt泛域名免费SSL证书教程

    Let’s Encrypt是目前使用最为广泛的免费SSL证书,蜗牛789使用的就是此款免费SSL证书,早在2017年7月份起Let’s Encrypt官方就发布...

    墨渊
  • 腾讯云DNSPod域名API申请Let’s Encrypt泛域名免费SSL证书教程

    Let’s Encrypt是目前使用最为广泛的免费SSL证书,蜗牛789使用的就是此款免费SSL证书,早在2017年7月份起Let’s Encrypt官方就发布...

    墨渊
  • CVE-2019-0232 远程代码执行漏洞-复现

    该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令注入影响。

    周俊辉
  • Android 必知必会 - RGBA转ARGB

    服务端下发的颜色值字符串由于一开始依据 iOS 端的 RGBA 格式,Android 端(Android 使用 ARGB 方式)需要进行兼容,需要对此字符串转换...

    他叫自己MR.张
  • JDK三个环境配置

    注意:JDK13版本及以上已经不用配这么多了,直接在 path 变量里面加个 bin 目录路径就可以了。

    乐心湖

扫码关注云+社区

领取腾讯云代金券