import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sca=new Scanner(System.in); String s=sca.next(); String str=""; int[] a=new int[s.length()]; for(int i=0;i<s.length();i++) { char c=s.charAt(i); if(a[i]==1) { continue; } if(c=='(') { boolean bo=true; if(i-1>=0) { if(s.charAt(i-1)=='*' || s.charAt(i-1)=='/' ) { //判断左括号前是否有乘除 bo=false; } } if(!bo) { continue; } int index=i+1; int zuo=0; boolean jian=true; if(i-1>=0) { if(s.charAt(i-1)=='-') { jian=false; } } while(true) { //找到匹配的右括号 if(!jian && s.charAt(index)=='+') { //判断左括号是-时,括号里有没有+ bo=false; break; } if(s.charAt(index)==')' && zuo==0) { break; } if(s.charAt(index)=='(') { zuo++; } if(s.charAt(index)==')') { zuo--; } index++; } if(!bo) { continue; } boolean bo2=true; if(index+1<s.length()) { if(s.charAt(index+1)=='*' || s.charAt(index+1)=='/') { //判断右括号右边是否有乘除 bo2=false; } } if(bo2) { //记录可以删除的括号位置 a[i]=1; a[index]=1; } } } for(int i=0;i<s.length();i++) { if(a[i]==0) { str+=s.charAt(i); } } System.out.println(str); } } /************************************************************** Problem: 1855 User: admin Language: Java Result: Accepted Time:3834 ms Memory:43076 kb ****************************************************************/