虽然并没参加笔试,但看第一题挺有意思就做了做。
思路是递归,有兴趣可以看看。
public class TX_Q1 {
public static void main(String[] args) {
String str = "HG[3|B[1|CA]]F[3|B[1|CA]]BB";
System.out.println(decrypt(str));
}
public static String decrypt(String str) {
if(str.indexOf('[') < 0) return str;
String res = "";
for(int i = 0; i < str.length(); i ++) {
char ch = str.charAt(i);
if(ch == '[') {
int count = 1;
int nStart = i + 1;
while(str.charAt(i) != '|') i ++;
int num = Integer.valueOf(str.substring(nStart, i));
int dStart = i + 1;
while(count > 0) {
i ++;
if(str.charAt(i) == '[') count ++;
if(str.charAt(i) == ']') count --;
}
String ds = decrypt(str.substring(dStart, i));
while(num -- > 0) res += ds;
} else {
res += ch;
}
}
return res;
}
}