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

    字符串压缩,利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。

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

    import java.util.Scanner;
    //我直接从Eclipse复制过来了,方法在main方法下面;
    public class StrNumber {
    	public static void main(String[] args) {
    		Scanner in =new Scanner(System.in);
    		String str =in.next();
    		System.out.println(StringDo(str));
    	}
    	public static Object StringDo(String str) {
    		int flog=1;
    		StringBuffer str2=new StringBuffer();//
    		
    		if(str.length()<=2) {
    			return str;//输入的str长度小于等于2,一定返回原字符串;
    		}
    		
    		for(int i =1;i<str.length();i++) {
    			
    			if(str.charAt(i-1)==str.charAt(i)) {
    				flog++;//记录字符出现次数
    			}else {
    				str2.append(str.charAt(i-1)).append(flog);
    				flog=1;//将字符和出现次数写入;
    			}	
    		}
    		
    		str2.append(str.charAt(str.length()-1)).append(flog);//最后一个字符要自己额外写入,原因略;
    		
    		if(str.length()<=str2.length()) {
    			return str;
    		}else{
    			return str2;
    			}
    		
    	}
    }
    

    新手写码,多多指教。

    展开全文
  • 字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文...
    题目:
    字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
    
     示例1:
      输入:"aabcccccaaa"
      输出:"a2b1c5a3"
    
     示例2:
      输入:"abbccd"
      输出:"abbccd"
      解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
     提示:
     字符串长度在[0, 50000]范围内。
    	 
    思路:
    双指针
    

    1.代码如下CompressString.java:

    package com.yuhl.right.leetcode;
    
    /**
     * @author yuhl
     * @Date 2020/10/25 8:48
     * @Classname CompressString
     * @Description  字符串压缩
     * 字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
     *
     * 示例1:
     *  输入:"aabcccccaaa"
     *  输出:"a2b1c5a3"
     *
     * 示例2:
     *  输入:"abbccd"
     *  输出:"abbccd"
     *  解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
     * 提示:
     * 字符串长度在[0, 50000]范围内。
     */
    public class CompressString {
        public static void main(String[] args) {
            String s = "aabcccccaaa";
            String res = compressString(s);
            System.out.println(res);
        }
    
        public static String compressString(String S) {
            //双指针
            int N = S.length();
            int i = 0;
            StringBuilder sb = new StringBuilder((int)(N * 0.75));
            while (i < N) {
                int j = i;
                while (j < N && S.charAt(j) == S.charAt(i)) {
                    j++;
                }
                sb.append(S.charAt(i));
                sb.append(j - i);
                i = j;
            }
    
            String res = sb.toString();
            if (res.length() < S.length()) {
                return res;
            } else {
                return S;
            }
        }
    }
    
    
    

    2.执行结果:

    "C:\Program Files\Java\jdk1.8.0_201\bin\java.exe" 
    a2b1c5a3
    
    展开全文
  • 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的...

    //

    利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。

    给定一个string iniString为待压缩的串(长度小于等于10000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。

    测试样例
    "aabcccccaaa"
    返回:"a2b1c5a3"
    "welcometonowcoderrrrr"
    返回:"welcometonowcoderrrrr"

    public static String zipString(String iniString) {
      // write code here
      char[] strs=iniString.toCharArray();
      String result="";
      for(int i=0;i<strs.length;i++){
       int j=1;
       if(i!=strs.length-1){
        while(strs[i]==strs[i+j]){
         j++;
         if(i+j==strs.length){
          break;
         }
        }
       }
       result=result+strs[i]+j;
       i=i+j-1;
      }
      
      return result.length()<iniString.length()?result:iniString;
     }

    展开全文
  • 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/compress-string-lcci 著作权归领扣网络所有。 class Solution { public String ...

    示例1:

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

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/compress-string-lcci
    著作权归领扣网络所有。

    class Solution {
        public String compressString(String S) {  
    		if (S == null || S.length() <= 2) {//首先判断字符串是否为空,是否长度小于2,是直接返回
    			return(S);
            }
            //注意StringBuilder不能写在if判断前面
            StringBuilder a = new StringBuilder().append(S.charAt(0));
    		int num = 1;
    	        for(int i=1;i < S.length();i++){     
    	            char c = S.charAt(i-1);
    	            char b = S.charAt(i);
    	            if( c == b){
    	                num++;
    	            }else{
    	             a.append(num).append(S.charAt(i));
    	               num = 1;               
    	            } 
    	        }
                //最后判断输出结果与原字符串长度是否小于他
    	        return(a.append(num).length() < S.length() ? a.toString():S);
        }
    }

     

    展开全文
  • created(){ this.strCompression('aabbbbbbccceeee') }, methods:{ strCompression(str){ var arr = str.split(''); var newStr = ""; var val = str.charAt(0); var count = 1;... i++){.
  • 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的...
  • 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的...
  • 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个string iniString为待压缩的...
  • 字符串重复出现的最长字串

    千次阅读 2012-10-08 23:00:56
    字符串重复出现的最长字串 例如字符串:drgabcifrabcsdrrs中,最长公共字串是:abc 方法:利用后缀树来求。 字符串的后缀树有如下: drgabcifrabcsdrrs rgabcifrabcsdrrs gabcifrabcsdrrs abcifrabcsdrrs...
  • //功能:删除字符串重复出现的字符 //样例:google 输出:gole //思路:创建一个用boll数组实现的哈希表
  • 利用正则表达式 @Test public void test() { String regex = &amp;amp;amp;amp;quot;a&amp;amp;amp;amp;quot;; String input = &amp;amp;amp;amp;quot;Java&amp;amp;amp;amp;quot;; Pattern ...
  • 题目要求:输入一行包括大写字母,小写字母及数字的字符串,该字符串以#号为结束标记,要求统计指定字符出现次数,能够实现循环操作 题解:通过ASCII值之间的关系,开辟一个数组,边输入边计数,查找时通过下标查找...
  • 思路:利用collections库中的Counter方法,遍历data列表中的每一个字符串,并把他们存入进一个字符出现次数列表定义一个最大值max存放每一个字符串出现次数最多的字符,将max与该字符串的长度比较,如果小于它的...
  • leetcode之压缩字符串中的重复字符

    千次阅读 2017-08-13 16:25:07
    1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。 2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。  
  • 判断Set集合的元素个数是否等于字符串的长度,若相等,则字符串中没有重复的字符。否则,字符串中存在重复的字符。 Code: public static boolean isunique(String s) { Set&lt;Character&gt; set = new...
  •  输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它。   2、解析  例如“yyabcdabjcabceg”,输出应该为abc和3。  可以将字符串yyabcdabjcabceg分解成如下子串  yyabcdabjcabceg ...
  • javascript 写一段代码,判断一个字符串出现次数最多的字符串,并统计出现的次数 运行代码如下 运行结果
  • 要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。 两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成后缀数组...
  • (1)先将字符串转换为字符数组,然后利用set不能存储重复对象的特性进行去重; (2)遍历字符串,若当前位置i处的字符在字符串中首次出现的位置firstIndex等于其最后出现的位置lastIndex,则说明当前字符只有一...
  • jsp源代码 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort...利用正则表达法除去字符串中的重复字符 var reg = /(
  • 统计字符串aasdsaaadccdc中的重复字符的个数 打印格式: a(5) c(3) d(3) s(2) 方法1 思路:根据set集合的去重复性,先拿到其中的键 根据键与字符串中的字符一一比较,个数++; package com.westos.morning; import...
  • 这个题目的巧妙在于:我们利用HashMap的key存储字符,利用value存储当前的下标 当我们的key重复时,也就证明当前窗口中的字符串不是重复的,需要将左边界的窗口下标进行修改,直接让 左边界的下标 = value + 1 这样...
  • /** * 要求产生10个随机的字符串,每一个字符串互相不重复, * 每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; * @author dmt * */public class Test1 { public stat...
  • 1.一个字符串中可能包含有a~z中的多个字符,如有重复,如String data="zassdrttyhhkjhjoiubvnvmkweqdqwe",  求出现次数最多的那个字母及出现的次数,如有多个重复的,都求出。 import java.util.ArrayList; import ...
  • Python统计字符串单词出现次数

    千次阅读 2020-03-18 14:39:33
    第一种 def str_count(char_str): """统计单词出现次数 ... :param char_str:要统计的字符串 :return 字典 """ dict={} for item in char_str.split(): dict[item]=dict.get(item,0)+1 return dict ...
  • 题目描述对于一个非空字符串,判断其是否可由一个子字符串重复多次组成。字符串只包含小写字母且长度不超过10000。样例1 输入: “abab” 输出: True 样例解释: 输入可由”ab”重复两次组成 样例 2 输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,210
精华内容 122,884
关键字:

利用字符串重复出现