31:字符串p型编码
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个完全由数字字符(‘0’,‘1’,‘2’,…,‘9’)构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此我们说122344111的p型编码串为1122132431;类似的道理,编码串101可以用来描述1111111111;00000000000可描述为"11个0",因此它的p型编码串即为110;100200300可描述为"1个1、2个 0、1个2、2个0、1个3、2个0",因此它的p型编码串为112012201320。
输入
输入仅一行,包含字符串str。每一行字符串最多包含1000个数字字符。
输出
输出该字符串对应的p型编码串。
样例输入
122344111
样例输出
1122132431
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String cnt = str.substring(0, 1);//获取初始数字
int sum = 0;//统计字符串数字改变后,每个数字出现的次数
for (int i = 0; i < str.length(); i++) {
if(str.substring(i, i+1).equals(cnt)) {//当后一个数字与前一个数字相同时,该数字和加1
sum++;
}else {//当后一个数字与前一个数字不同时,输出上一个数字的结果(出现次数+数字)
System.out.print(sum+cnt);
sum = 0;//初始化sum
cnt = str.substring(i, i+1);//初始化cnt
sum++;
}
}
System.out.print(sum+cnt);
}
}