1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include<iostream> #include<memory.h> #include<stack> using namespace std; char str[110]; char result[110]; void solve(int len){ stack<int> s; for(int i =0;i<len;i++){ switch(str[i]){ case '(': s.push(i); break; case ')': if(s.empty()){ result[i]='?'; }else{ s.pop(); } break; default: result[i]=' '; } } while(!s.empty()){ int p=s.top(); s.pop(); result[p]='$'; } } int main(){ memset(result,32,sizeof(result)); while(cin.peek()!=EOF){ cin.getline(str,110); int len=strlen(str); solve(len); result[len]='\0'; cout<<str<<endl; cout<<result<<endl; memset(result,32,sizeof(result)); } } |