import java.util.Scanner;
import java.util.Stack;
public class Main {
private static final char LEFT_XIAO = '(';
private static final char RIGFHT_XIAO = ')';
private static final char LEFT_HUA = '{';
private static final char RIGHT_HUA = '}';
private static final char LEFT_FANG = '[';
private static final char RIGHT_FANG = ']';
static Stack<Character> stack = new Stack<Character>();
private static String s;
private static boolean leftFlag = true;
private static boolean rightFlag = true;
private static String rightChar = "";
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNext()) {
s = cin.nextLine();
isBalance();
if (leftFlag && rightFlag)
;
else
break;
if (s.equals("."))
break;
}
cin.close();
if (!stack.isEmpty()) {
char cc = stack.pop();
System.out.println("NO");
if (cc == LEFT_XIAO || cc == LEFT_HUA || cc == LEFT_FANG) {
System.out.println(cc + "-?");
} else if (cc == '<') {
System.out.println("/*-?");
}
leftFlag = false;
rightFlag = false;
}
if (leftFlag && rightFlag) {
System.out.println("YES");
} else if (rightFlag) {
System.out.println("NO");
System.out.println("?-" + rightChar);
} else if (leftFlag) {
System.out.println("NO");
System.out.println((stack.peek() == '<' ? "/*" : stack.pop()) + "-?");
}
}
public static void isBalance() {
int len = s.length();
for (int i = 0; i < len; ++i) {
char c = s.charAt(i);
if (c == LEFT_XIAO || c == LEFT_HUA || c == LEFT_FANG) {
stack.push(c);
} else if (c == '/' && i + 1 < len && s.charAt(i + 1) == '*') {
stack.push('<');
++i;
} else {
if (c == RIGFHT_XIAO || c == RIGHT_HUA || c == RIGHT_FANG) {
if (stack.isEmpty()) {
leftFlag = false;
rightChar += c;
return;
}
if ((c == RIGFHT_XIAO && stack.peek() != LEFT_XIAO)
|| (c == RIGHT_HUA && stack.peek() != LEFT_HUA)
|| (c == RIGHT_FANG && stack.peek() != LEFT_FANG)
) {
rightFlag = false;
return;
}
stack.pop();
} else if (c == '*' && i + 1 < len && s.charAt(i + 1) == '/') {
if (stack.isEmpty()) {
leftFlag = false;
rightChar = "*/";
return;
}
if (stack.peek() != '<') {
rightFlag = false;
return;
}
stack.pop();
++i;// 这里容易忘,不然 用例/*/**/*/过不去(最后一个测试点)
}
}
}
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有