一行字符串,每个之间用空格隔开,开头结尾均为5a, 其中5b ba表示是由5a编译过来的,5b bb是由5b转义而来,同时每一个5a前面表示每一段的长度,求判断每一段是否正确,如果正确就输出,不正确,输出下一行
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s[] = sc.nextLine().split(" ");
int len = s.length;
int cnt = 0;
int index[] = new int[100];
for(int i = 0; i < len ;i++){
if(s[i].equals("5a")){
index[cnt++] = i;//记录每一个5a的位置
}
}
StringBuffer sb = new StringBuffer();
sb.append("5a");
for(int i = 1; i < cnt; i++){
int left = index[i - 1] + 1;
int right = index[i] - 2;
int length = right - left + 1;
int size = Integer.parseInt(s[index[i] - 1]);
for(int j = left ; j <= right; j++){
if(j + 1 <= right && s[j].equals("5b") && (s[j + 1].equals("ba") || s[j + 1].equals("bb"))){
j = j + 2;
length--;
if(j > right) break;
}
}
if(length == size){
for(int k = left; k <= right + 1; k++){
sb.append(" " + s[k]);
}
sb.append(" 5a");//结尾不要附上5a
}
}
System.out.println(sb.toString());
}
}