输入是1(2(3,4(,5)),6(7,))
输出是中序遍历3245176
static String solution(String input) {
if(input.equals("") || input == null) {
return input;
}
return func(input);
}
static String func(String input) {
if(!input.contains("(")) {
return input;
}
int one = input.indexOf("(");
int two = input.lastIndexOf(")");
int len = 0;
int flag = -1;
for(int i = one+1; i < two; i++) {
if(input.charAt(i) == ',' && len == 0) {
flag = i;
}
if(input.charAt(i) == '(') {
len++;
}
if(input.charAt(i) == ')') {
len--;
}
}
return func(input.substring(one+1, flag))+input.substring(0, one)+func(input.substring(flag+1, two));
}
解析:中(左,右)
,按照这个方式就能求出结果,主要是难找,
通过遇到左括号加,右括号减的方式来获取逗号的索引,然后就可以按照上面的方式递归。