题目链接:http://codeforces.com/contest/1153/problem/C
题目大意:要求前缀里面不能有正确的表达式,但整个字符串是正确的表达式,构造括号表达式,优先放(,构造完之后验证是否符合。这是我第一次打cf比赛,因为cf太晚了。这题当时没做出来,后来补的题,有点贪心的感觉。
具体思想在代码中
ac代码:
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;
//构造括号表达式,优先放(
//要求前缀里面不能有正确的表达式,但整个字符串是正确的表达式
public class Main {
public static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String a=sc.next();
char ctr[]=a.toCharArray();
if(n%2!=0||ctr[0]==')'||ctr[n-1]=='('){//奇数不可能匹配,首尾必须分别为'(' ')'
System.out.println(":(");
return;
}
int l=0,r=0;
for(int i=0;i