1. 辅助栈
public class Main
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
// 读入字符串s
String s = scan.nextLine().trim();
// 先对s的情况进行判断
if ("".equals(s)) // 空串
{
System.out.println(s);
return;
}
Stack<Character> stack = new Stack<Character>();
// 存放匹配完成的结果
StringBuffer sBuffer = new StringBuffer(s);
for (int i=0; i<s.length(); i++)
{
char c = s.charAt(i);
if (c == '[')
{
// 左括号入栈
stack.push('[');
}
else
{
// 没有与之匹配的左括号
if (stack.isEmpty())
{
sBuffer.insert(0, '[');
continue;
}
stack.pop();
}
}
// 栈不为空,左括号多了
while (!stack.isEmpty())
{
sBuffer.insert(sBuffer.length(), ']');
stack.pop(); // 弹出一个左括号
}
// 打印括号匹配的结果
System.out.println(sBuffer.toString());
}
}