题解 | 完成括号匹配
完成括号匹配
https://www.nowcoder.com/practice/fe8d6a1b88af4ba6b4dbb10972059040
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Stack;
import java.lang.StringBuffer;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
String input = new Scanner(System.in).nextLine();
Stack<String> stack = new Stack<>();
for(int i=0;i<input.length();i++){
String subS = input.substring(i,i+1);
if(subS.equals("[") ) stack.push(subS);
else{
//栈为空或栈顶为[
if(stack.isEmpty()) stack.push(subS);
else if(stack.peek().equals("[")) stack.pop();
else stack.push(subS);
}
}
StringBuffer sb = new StringBuffer(input);
while(!stack.isEmpty()){
String peek = stack.pop();
if(peek.equals("[")) sb.append("]");
else sb.insert(0,"[".toCharArray());
}
System.out.println(sb.toString());
}
}
主要知识点:栈
思路:
1.先把能够匹配上的处理掉(删掉)
2.然后再把不能匹配上的逐个加括号(缺左括号就加左括号,缺右括号就加右括号)

海康威视公司氛围 920人发布