编码
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:
1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。
2、 如果K为1,不输出K
Input
输入有多组,直到文件结束。每组一个字符串,长度为10000以内
Output
输出编码后的字符串。
Sample Input
ABC
ABBCCC
Sample Output
ABC
A2B3C
Hint
Source
lin
可以定义一个数组一个字符数组,存储不同的字符和它的数量,想试试类。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int i,j,num;
String s;
p[] a = new p[10050];//类的数组定义
for(i=0;i<=10000;i++)//别忘了初始化
a[i] = new p();
num = 0;
while(cin.hasNextLine())
{
s = cin.nextLine();
num = 0;
for(i=0;i<s.length();i++)
{
a[num].data = s.charAt(i);
a[num].num = 1;
for(j=i+1;j<s.length();j++)
{
if(s.charAt(j)!=a[num].data)
break;
else
a[num].num++;
}
num++;
i = j - 1;
}
for(i=0;i<num;i++)
{
if(a[i].num!=1)
System.out.print(a[i].num);
System.out.print(a[i].data);
}
System.out.println();
}
cin.close();
}
public static class p
{
char data;
int num;
}
}