标签:space 问题 int top ++ ace std express 遇到
1 //每一个右括号将与最近遇到的那个未匹配的左括号相匹配!!! 2 #include<iostream> 3 #include<stack> 4 #include<string.h> 5 using namespace std; 6 const int maxLength=100;//最大字符串长度 7 void PrintMatchedPairs(char*expression){ 8 stack<int> s; 9 int length=strlen(expression); 10 int j; 11 for(int i=0;i<length;i++){ 12 if(expression[i]==‘(‘) s.push(i);//位置进栈 13 else if(expression[i]==‘)‘){//右括号 14 if(!s.empty()){//栈不空 15 j=s.top();//记录匹配的左括号位置 16 cout<<"左括号即第"<<j+1<<"个字符与右括号即第"<<i+1<<"个字符匹配成功"<<endl; 17 s.pop();//匹配成功,出栈 18 } 19 else cout<<"没有与右括号即第"<<i+1<<"个字符匹配的左括号"<<endl; 20 } 21 } 22 while(!s.empty()){ 23 j=s.top(); 24 s.pop(); 25 cout<<"没有与左括号即第"<<j+1<<"个符号相匹配的右括号"<<endl; 26 } 27 } 28 int main(){ 29 char a[10]; 30 for(int i=0;i<10;i++) cin>>a[i]; 31 PrintMatchedPairs(a); 32 return 0; 33 }
标签:space 问题 int top ++ ace std express 遇到
原文地址:https://www.cnblogs.com/TYXmax/p/10987761.html