关于我在C语言网刷题所遇到不会的题目,记录下来
💀题目描述
输入一串仅包含 ‘A’ - 'Z’的字符串, 用下面的方法进行重新编码:
- 若子串包含连续k个相同的字符,则改为kX; 其中X为这个子串中唯一的字符.
- 如果子串中字符仅为1个时, 则前面的’1’则省去.
输入
第一行输入为一个整数N (1 <= N <= 100)代表有几组测试数据. 下面紧跟N行字符串. 每个字符串仅包含’A’ - ‘Z’ 并且长度都小于 10000.
输出
对于每个字符串, 输出对应解码后的字符串.
样例输入
2
ABC
ABBCCC
样例输出
ABC
关于大佬的代码(尝试理解)
代码1:
import java.util.*;
public class Test07 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.nextLine();//吃掉回车
int count=1;
while(n>0){
String s=sc.nextLine();
for(int i=0;i<s.length();i++){
count=1;
while((i+1)<s.length()&&s.charAt(i)==s.charAt(i+1)){
count++;
i++;
}
if(count>1) System.out.print(count);
System.out.print(s.charAt(i));
}
System.out.println();
n--;
}
}
}