重复字符统计算法
来源:互联网 发布:死而后已不亦远乎 编辑:程序博客网 时间:2024/06/05 21:05
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
输入:dserwffwewfe
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
package test;import java.util.Scanner;public class StrCompress {public static void main(String[] args){Scanner scanner = new Scanner(System.in);//接受键盘输入char[]srcArray = scanner.nextLine().toCharArray();//将字符串转换为字符数组char[] dstArray = new char[srcArray.length];System.out.println("src="+String.valueOf(srcArray));strCompress(srcArray,srcArray.length,dstArray);System.out.println("dst="+String.valueOf(dstArray));}private static void strCompress(char[] srcArray, int length, char[] dstArray) {// TODO Auto-generated method stubint i = 0,k = 0;while(i<length){//遍历int count = 0;char ch = srcArray[i];count++;int j = i+1;while(j<length && ch==srcArray[j]){//统计重复次数count++;j++;}if(count!=1){dstArray[k] = String.valueOf(count).charAt(0);//重复次数dstArray[++k] = ch;//字符}else{dstArray[k] = ch;}k++;i = j;}for(;k<length;){dstArray[k++] = '#';}}}
输入:dserwffwewfe
输出:
src=dserwffwewfe
dst=dserw2fwewfe
0 0
- 重复字符统计算法
- 统计重复字符
- 重复字符过滤算法
- 字符统计算法
- 统计字符串中的无重复字符个数
- 算法:字符串字符重复问题
- 算法训练 统计字符次数
- 算法训练 统计字符次数
- js实现统计字符算法
- 删除并统计数组中重复的字符
- 统计一个字符串的重复字符出现的字数
- java统计字符串中重复出现字符的个数
- 统计字符串中重复的字符个数并输出
- 字符出现次数统计的删除算法
- 字符统计算法(改进版)
- C算法-统计不同字符个数
- 【经典算法】:英文文章统计字符频率
- 算法学习【2】字符个数统计
- 权限带来的很二事情
- KVO模式
- 100个数,范围是0(1)~99 ,其中有一个重复,求重复的数字。
- 位运算知识整理
- LeetCode Construct Binary Tree from Inorder and Postorder Traversal
- 重复字符统计算法
- 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组
- intelliJ IDEA 10的使用简要
- itoa 库函数的实现
- XMLHttpRequest和ActiveXObject学习
- Pocketsphinx语音识别--使用流程, 安装,使用
- 关于OnPaint, OnEraseBkGnd, WM_PAINT,WM_ERASEBKGND
- asio学习之三:asio实现简单的服务器和客户端
- 在两个有序链表中查找第K大元素。