给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。
输入描述:
每个测试输入包含1个测试用例 每个测试用例输入只有一行字符串,字符串只包括大写英文字母,长度不超过10000。
输出描述:
输出编码后的字符串
输入例子1:
AAAABCCDAA
输出例子1:
4A1B2C1D2A
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
char[] arr=new char[10000];
List wordlist=new ArrayList(); //存放最终的结果
arr=input.next().toCharArray();
int cunt=1;//统计每个相邻相同字母的个数,默认为1
int len=0;
//统计每个字母出现的次数
for(int i=0;i<arr.length;i++) {
//如果统计最后一个
if(i+1==arr.length) {
wordlist.add(cunt);
wordlist.add(arr[i]);
break;
}
//如果相邻的字母一样,cunt++
if(arr[i]==arr[i+1]) {
cunt++;
}else { //不同的话就添加
wordlist.add(cunt);
wordlist.add(arr[i]);
cunt=1;
}
}
for(int i=0;i<wordlist.size();i++) {
if(i==wordlist.size()-1) {
System.out.println(wordlist.get(i));
}else {
System.out.print(wordlist.get(i));
}
}
}
}