笔者第一遍写的代码。测试点5内存超了,经过测试,发现直接输出就不会超。用一个String变量来记录输出就会超。
import java.io.*;
public class pat1078 {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String chara = br.readLine();
String str = br.readLine();
if(chara.charAt(0)=='C') Compression(str);
else if(chara.charAt(0)=='D') Decompression(str);
}
public static void Compression(String str) {
char temp = str.charAt(0); //默认char为 null
int num = 0;
for(int i=0;i<str.length();i++) {
if(temp!=str.charAt(i)) { //如果char不同
if(num>1) System.out.print(num); //多于1时加上数组
System.out.print(temp); //再加上字符
num = 1; //计数归1
temp = str.charAt(i);
}else num++;
}
if(num>1) System.out.print(num); //因为我们把输出放在下一次循环里
System.out