编码
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
import java.util.*;
import java.text.*;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
DecimalFormat df = new DecimalFormat("0.000000");
while(cin.hasNext())
{
String ch = cin.nextLine();
int a[] = new int[10000], i, j;
for(i = 0; i < ch.length(); i++)
{
a[i] = 1;//该单词出现过一次
for(j = i + 1; j < ch.length(); j++)//从i+1开始往后找,直到不重复为止
{
if(ch.charAt(i) == ch.charAt(j))
{
a[i]++;
}
else
{
break;
}
}
i = j-1;//从不重复的单词处开始
}
for(i = 0; i < ch.length(); i++)
{
if(a[i] > 0)
{
if(a[i] == 1)
System.out.print(ch.charAt(i));
else
{
System.out.print(a[i]);
System.out.print(ch.charAt(i));
}
}
}
System.out.println();
}
cin.close();
}
}