时间限制: 1000ms 内存限制: 32768kB
描述:给定一个只包含A-Z的字符串。按以下规则编码:
1.每个包含k个相同字符的子串编码为kX,X为子串中的唯一字符。
2.如果子串的长度为1,则1被省略。
输入:输入的第一行是一个整数N(1<=N<=100),表示有N组数据,接下来的N行是N个字符串,字符串只包含'A'-'Z',字符串长度小于10000.
输出:对于每组实例数据,在一行中输出编码后的字符串
样例输入:
3
ABC
ABBCCC
ABCBB
样例输出:
ABC
A2B3C
ABC2B
以下是JAVA代码 经过ACM检查通过:
- package com.cxybl;
-
- import java.util.Scanner;
- public class BianMa {
-
- public static void main(String args[]){
- Scanner sc=new Scanner(System.in);
- int N=sc.nextInt()+1;
- for(int i=0;i<N;i++){
- String s=sc.nextLine();
- char b[]=s.toCharArray();
- int pos=0;
- for(int j=1;j<b.length;j++){
- if(b[j]!=b[j-1]){
- if(j-pos==1){
- System.out.printf("%s",b[j-1]);
- }else{
- System.out.printf("%d%s",j-pos,b[j-1]);
- }
- pos=j;
- }
- if(j==b.length-1){
- if(j-pos==0){
- System.out.printf("%s",b[j]);
- }else{
- System.out.printf("%d%s",j-pos+1,b[j]);
- System.out.println();
- }
- System.out.println();
-
- }
- }
- }
- sc.close();
- }
- }