首页 > 其他分享 >字符串压缩

字符串压缩

时间:2023-07-28 18:45:25浏览次数:35  
标签:String 示例 压缩 abbccd 字符串 指针

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。

示例1:

输入:"aabcccccaaa"
输出:"a2b1c5a3"
示例2:

输入:"abbccd"
输出:"abbccd"
解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/compress-string-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

双指针,左右指针找到不同字母

class Solution {
    public String compressString(String S) {
        //根据特殊情况不能使用频率
        //双指针方法,一个判断字母,一个判断字母频率
        int letter = 0, number = 1;
        String newStr = "";
        while(letter<S.length()){
            //当同样字母更新下标
            while(number<S.length()&&S.charAt(letter)==S.charAt(number)){
                number++;
            }
            //频率==双下标之差
            newStr = newStr + S.charAt(letter) +"" + (number-letter);
            letter = number;
        }
        if(newStr.length()>=S.length())return S;
        return newStr;
    }
}

标签:String,示例,压缩,abbccd,字符串,指针
From: https://www.cnblogs.com/xiaochaofang/p/17588667.html

相关文章

  • C# 字符串转码后操作二进制文件
    String转码后写入二进制文件,读二进制文件进行解码返回。publicclassBinaryClass{///<summary>///写二进制文件///</summary>///<paramname="binFile"></param>///<paramname="str">&......
  • php字符串超长自动换行
    1.英文字符串超长换行使用系统方法wordwrap2.中文字符串超长换行自行定义方法mb_wordwrap/***Notes:对传入的中文字符串处理,如果字符串超过限定的长度,则自动进行换行*docs:*/functionmb_wordwrap($str,$width=8,$break="\r\n"){......
  • C#将16进制字符串转化为16进制值(进制得转化)
    代码如下:intval16=Convert.ToInt32(val16_Str,16);//val16_Str为16进制字符串2进制、8进制同理 C#的进制转换主要用在串口通讯时候进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数......
  • Leetcode438. 找到字符串中所有字母异位词
    classSolution{public:vector<int>findAnagrams(strings,stringp){unordered_map<char,int>window,hash;vector<int>res;for(autoi:p)hash[i]++;for(inti=0,j=0;i<s.size();i++){......
  • SQL2008 不用for xml 实现拼接字符串
    因为forxml有些特殊符号 不能作为分割符号,所以采用这种方式。如果是SQL2012的话 有自带的函数了--测试数据IFOBJECT_ID('tempdb..#tmp_Orgdata')ISNOTNULLDROPTABLE#tmp_OrgdataGO--GID分组IDSTRCOL字符串SELECTGID,StrColINTO#tmp_Orgdat......
  • Android-定义和获取字符串资源
    resource->values->strings.xml里定义字符串定义单字符串:<stringname="app_name">abc123</string>定义字符串数组:<string-arrayname="map_style_array"><item>MAPBOX_STREETS</item><item>OUTDO......
  • linux压缩和解压缩:gzip gunzip | zip unzip | tar指令
    摘要目的:介绍压缩和解压缩的指令:gzip和gunzip,用于文件的压缩和解压缩zip和unzip,用于压缩/解压缩文件和文件夹,在项目打包时有用tar指令指令1.gzip和gunzip指令功能说明选项gziphello.txt压缩文件只能压缩文件,不能压缩文件夹gunzip文件.gz解压文件......
  • Template <字符串哈希>
    #include<iostream>#include<string>#include<vector>usingnamespacestd;usingULL=unsignedlonglong;//字符串哈希(注意get(l,r)为闭区间,字符串下标从1开始)structStringHash{vector<ULL>h;//哈希数组vector<ULL>p;//p[i]=P......
  • Java 所有子字符串
    Java所有子字符串在Java中,字符串是一种常见的数据类型,它由一串字符组成。在处理字符串时,我们经常需要获取字符串的所有子字符串。子字符串是指从原始字符串中截取出来的一部分字符串。获取所有子字符串的方法Java提供了多种方式来获取一个字符串的所有子字符串。下面我们将介绍......
  • Java 缩短字符串长度
    Java缩短字符串长度在Java中,经常会遇到需要对字符串进行缩短的情况。无论是为了节省内存空间,还是为了满足特定的长度限制,缩短字符串长度都是一个常见的操作。本文将介绍几种常用的方法来缩短字符串长度,并提供相应的代码示例。1.使用substring方法Java的String类提供了一个subs......