精华内容
下载资源
问答
  • 今天小编就为大家分享一篇Java中字符串中连续相同字符去重方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。 例如: aac 压缩为 1ac xxxxyyyyyyzbbb 压缩为 3x5yz2b 输入描述: 任意长度字符串 如 ...

    题目描述:

    输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。

    例如:

    aac 压缩为 1ac

    xxxxyyyyyyzbbb 压缩为 3x5yz2b

    输入描述:

    任意长度字符串 如 xxxxyyyyyyzbbb

    输出描述:

    压缩后的字符串,即 3x5yz2b

    分析思路:

            运用 StringBuffer 的 append() 方法来实现字符串的增加。

            (1) 若 count 不为 0 ,则先将 count 加入到 sb中,然后再讲字符加入 sb 中。

            (2) 若 count 为 0 ,则将字符加入 sb 中。

            注意点:

            对于例子xxxyyyyyyzbbb中,最后一个b 与它的前一个b相等,没有执行 else 语句,也就没有执行append() 方法。

    import java.util.Scanner;
    
    public class Main
    {
     
        public static void main(String [] args)
        {
            Scanner sc = new Scanner(System.in);
            String input = sc.nextLine();
            StringBuffer sb = new StringBuffer();
            int count = 0;//统计相同字符的个数
            for(int i=0; i< input.length() - 1; i++)
            {
                char c = input.charAt(i);
                char nextC = input.charAt(i+1);
                if(c == nextC)
                    count++;
                else
                {
                    if(count != 0)
                    {
                        sb.append(count);
                        count = 0;
                    }
                    sb.append(c);
                }
            }
            if(count != 0)
                sb.append(count);
            sb.append(input.charAt(input.length()-1));
            System.out.println(sb.toString());
        }
    }

    方法二:字符串的直接相加,不适用StringBuffer.append() 方法。此方法对于字符串 "hello  world"中的空格无效。。。

    import java.util.Scanner;
    public class Main
    {
        public static void main(String [] args)
        {
            Scanner sc = new Scanner(System.in);
            String str = sc.next();
            int len = str.length();
            char [] charArray = str.toCharArray();//定义一个数组,字符串转为数组
            
            String newStr = "";//定义一个新的字符串
            int count = 0;//统计重复数字的个数
            for(int i=0; i<len-1; i++)
            {
                if(charArray[i]!=charArray[i+1])
                {
                    if(count > 0)
                    {
                        newStr = newStr + count;//字符串连接
                        count = 0;
                    }
                    newStr = newStr + charArray[i];//字符串连接
                }
                else
                {
                    count++;
                }
            }
            if(count != 0)
                newStr = newStr + count;
            newStr = newStr + charArray[len-1];
            
            System.out.println(newStr);
        }
    }

     

    展开全文
  • 压缩字符串中连续重复字符

    千次阅读 2017-03-01 22:02:37
    题目:通过键盘输入一串小写...比如字符串”abcbc”由于无连续重复字符压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。#include <s

    题目:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。
    压缩规则:
    1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。
    2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    //
    int main()
    {
    //    char str[99]="xxxyyyyyyz";//3x6yz
    //    char str[99]="abcbc";
        char str[99]="pppppppp";//8p
        int strLength=strlen(str);
        int count=1;//记录重复个数
        for(int i=0;i<strLength;++i){
    
            if(str[i+1]==str[i]){
                count++;
            }
            else{
                if(count==1){
                    printf("%c",str[i]);
                }
                else{
                    printf("%d%c",count,str[i]);
                }
                count=1;//这句重置不要忘记
            }
        }
        return 0;
    }
    
    展开全文
  • leetcode之压缩字符串中重复字符

    千次阅读 2017-08-13 16:25:07
    题目 通过键盘输入一串小写字母...比如字符串”abcbc”由于无连续重复字符压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。  

    题目

    通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。

    压缩规则:

    1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”

    2、压缩字段的格式为字符重复的次数+字符。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”

     

    思路:

    遍历字符串得到重复字符得个数与重复字符。

    实现:

    public void stringZip(String str) {

                  StringBufferstringBuffer = new StringBuffer();

                  charlast = str.charAt(0);

                  intcount=1;

                  for(inti=1;i<str.length();i++){

                         if(str.charAt(i)==last){

                                count++;

                         }

                         else{

                                if(count>1){

                                       stringBuffer.append(count);

                                }

                                stringBuffer.append(last);

                                last=str.charAt(i);

                                count=1;

                         }

                  }

                  //添加最后得字符

                  if(count>1){

                         stringBuffer.append(count);

                  }

                  stringBuffer.append(last);

                 

                  Stringstring = stringBuffer.toString();

                  System.out.println(string);

          

           }

    展开全文
  • java代码-写一个程序,将字符串中重复的内容进行压缩,例如:“wwwwaaadexxxxxx” 压缩后变成 “w4a3dex6”
  • //压缩字符串, 将字符串中连续出现的字母压缩, 比如‘aabbccc’压缩为‘a2b2c3’,'afghhh'压缩为'afgh3' #include<stdio.h> #include<iostream> #include<string> using namespace std; string...
    //压缩字符串, 将字符串中连续出现的字母压缩, 比如‘aabbccc’压缩为‘a2b2c3’,'afghhh'压缩为'afgh3'
    
    #include<stdio.h>
    #include<iostream>
    #include<string>
    using namespace std;
    
    string yasuo(string str1)
    {
    	string str2;
    	str2 = str1[0];
    	int j = 1;
    	for (int i=1;i<str1.length();i++)
    	{
    		if (str1[i] == str1[i - 1])
    		{
    			j++;
    			if(i== str1.length()-1)str2 = str2 + to_string(j);
    		}
    		else{
    			if(j>1)str2 = str2 + to_string(j);
    			str2 = str2+str1[i];
    			j = 1;
    		}
    	}
    	return str2;
    }
    
    int main()
    {
    	string s;
    	 cout<<"测试字符串:";
    	 s = "aaffffgghhh";
    	 cout<<s<<"  压缩:"<<yasuo(s)<<endl;
    	 cout << "测试字符串:";
    	 s = "afghhh";
    	 cout << s << "  压缩:"<< yasuo(s) << endl;
    	 cout << "测试字符串:";
    	 s = "aabbccc";
    	 cout << s << "  压缩:"<< yasuo(s) << endl;
    	 return 0;
    }
    
    运行结果:
    测试字符串:aaffffgghhh  压缩:a2f4g2h3
    测试字符串:afghhh  压缩:afgh3
    测试字符串:aabbccc  压缩:a2b2c3
    
    展开全文
  • import java.util.Scanner; /** * 题目:通过键盘输入一串小写字母(a~z)组成的...比如字符串”abcbc”由于无连续重复字符压缩后的字符串还是”abcbc”。 * 2、压缩字段的格式为”字符重复的次数+字符”。例如:...
  • 比如字符串"abcbc"由于无连续重复字符压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 var str = "xxxyyyzzcc"; var a1 = []; //定义空...
  • 由于无连续重复字符压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...
  • 已经很久没有写博客了,2017年的最后一天写一篇,用这样的方式和2017年告别挺好的。这段时间经历找工作,是我这...请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串压缩规则:
  • 通过键盘输入一串小写字母(a~z)组成的字符串,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...
  • 比如字符串"abcbc"由于无连续重复字符压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 直接上代码: var str = "vxxxyyyvzzzv"; var a1 =...
  • 主要介绍了C语言字符串快速压缩算法代码,将字符串中连续出席的重复字母进行压缩,其主要的压缩字段的格式为”字符重复的次数+字符”。有需要的小伙伴参考下吧。
  • 比如字符串”abcbc”由于无连续重复字符压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。 要求实现函数: void stringZip...
  • 字符串中连续出席的重复字母进行压缩(华为校园招聘题)
  • 字符串连续出现的字母进行压缩 举例:输入为xxxyyyyyyz 压缩后为 3x6yz 解题思路: 通过在对输入字符串的遍历循环借助一个StringBuffer变量sb进行字符串的拼接 在遍历的firstChar每次都会取到没有遍历...
  • 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/compress-string-lcci 著作权归领扣网络所有。 class Solution { public String ...
  • 例如:输入:"xxxyyyyyyz" 输出:"3x6yz"
  • 例如: 原文:a 编码后:a 原文:aaaabc 编码后:a4bc 原文:aaaabcccde 编码后:a4bc3de 实现如下: public class work001 { public String strCompress(String str){ boolean flag=false;... Syst...
  • 利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)...
  • 压缩空白 从字符串中删除前导,尾随和重复的空格 安装 $ npm install condense-whitespace 用法 const ... -修剪连续重复的子字符串: foo--bar---baz → foo-bar-baz 执照 麻省理工学院:copyright:
  • 通过键盘输入一串小写字母(a~z)组成的字符串,编写一个测试程序,将字符串中连续出现的重复字符删去(即在一个字符串中,如果遇到连续重复的字符只出现一次),然后输出处理后的字符串。例如:str1=...
  • 小Q想要给他的朋友发送一个神秘字符串,但他发现字符串的长度过长,于是小Q发明了一种压缩算法对字符串重复的部分进行了压缩。 对于字符串连续的m个相同的子串s将会压缩为m|s。例如字符串ABCABCABC会被压缩为[3|...
  • 利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)...
  • C语言-字符串连续出现字母进行压缩

    千次阅读 2019-11-22 23:27:41
    字符串连续出现的字母进行压缩 举例:输入为xxxyyyyyyz 压缩后为 3x6yz 解题思路: 将输入的数组的话,主要是要解决两个问题,一是统计重复的字符,二是确定数组压缩后每个元素在数组所处的位置。 可以用一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,110
精华内容 14,044
关键字:

压缩字符串中的连续重复字符