給定一個字符串,請你將字符串重新編碼,將連續的字符替換成“連續出現的個數+字符”。比如字符串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));
}
}
}
}