返回列表 發帖

a045: 括弧配對

本帖最後由 李知易 於 2024-11-26 22:26 編輯


a045
本帖隱藏的內容需要回復才可以瀏覽
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4.     string a;
  5.     while(cin>>a)
  6.     {
  7.         stack<char> st;
  8.         bool ma=true;
  9.         for(int i=0;i<a.length();i++)
  10.         {
  11.             if(a[i]=='(' or a[i]=='[' or a[i]=='{')
  12.                 st.push(a[i]);
  13.             if(a[i]==')' or a[i]==']' or a[i]=='}')
  14.             {
  15.                 if(st.empty())
  16.                 {
  17.                     ma=false;
  18.                     break;
  19.                 }else if(a[i]-st.top()==1 or a[i]-st.top()==2)
  20.                 {
  21.                     st.pop();
  22.                 }else
  23.                 {
  24.                     ma=false;
  25.                     break;
  26.                 }
  27.             }   
  28.         }
  29.         cout<<((st.empty() && ma==true) ? "yes\n" : "no\n");
  30.     }
  31.     return 0;
  32. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. string str;
  4. int main()
  5. {
  6.     while(cin>>str)
  7.     {
  8.         bool m=true;
  9.         stack<char> sp;
  10.         for(int i=0;i<str.length(); i++)
  11.         {
  12.             if(str[i]=='('||str[i]=='['||str[i]=='{')
  13.                 sp.push(str[i]);
  14.             if(str[i]==')'||str[i]==']'||str[i]=='}')
  15.             {
  16.                 if(sp.empty())
  17.                 {
  18.                     m=false;
  19.                     break;
  20.                 }
  21.                 if(str[i]-sp.top()==1||str[i]-sp.top()==2)
  22.                 {
  23.                     sp.pop();
  24.                 }else{
  25.                     m=false;
  26.                     break;
  27.                 }
  28.             }
  29.         }
  30.         if(m==true&&sp.empty())
  31.         {
  32.         cout<<"yes\n";
  33.         }else{
  34.         cout<<"no\n";
  35.         }
  36.     }
  37. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     string str;
  6.     while(cin>>str)
  7.     {
  8.         stack<char> sp;
  9.         bool match=true;
  10.         for(int i=0;i<str.length();i++)
  11.         {
  12.             if(str[i]=='(' || str[i]=='[' ||str[i]=='{')
  13.                 sp.push(str[i]);
  14.             if(str[i]==')' || str[i]==']' ||str[i]=='}')
  15.             {
  16.                 if(str.length()%2==1)
  17.                 {
  18.                     match=false;
  19.                     break;
  20.                 }
  21.                 if(sp.empty())
  22.                 {
  23.                     match=false;
  24.                     break;
  25.                 }
  26.                 if(str[i]-sp.top()==1 || str[i]-sp.top()==2)
  27.                 {
  28.                     sp.pop();
  29.                 }
  30.                 else
  31.                 {
  32.                     match=false;
  33.                     break;
  34.                 }
  35.             }
  36.         }
  37.         if(match and sp.empty())
  38.             cout<<"yes"<<endl;
  39.         else
  40.             cout<<"no"<<endl;
  41.     }
  42.     return 0;
  43. }
複製代碼

TOP

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. string str;
  4. int main()
  5. {
  6.     while(cin>>str)
  7.     {
  8.         stack <char>sp;
  9.         bool match=true;
  10.         for(int i=0; i<str.length(); i++)
  11.         {
  12.             if(str[i]=='(' || str[i]=='[' || str[i]=='{' )
  13.             {
  14.                 sp.push(str[i]);
  15.             }
  16.             if(str[i]==')' || str[i]==']' || str[i]=='}' )
  17.             {
  18.                 if(sp.empty())
  19.                 {
  20.                     match=false;
  21.                     break;
  22.                 }
  23.                 if(str[i]-sp.top()==1 || str[i]-sp.top()==2)
  24.                 {
  25.                     sp.pop();
  26.                 }
  27.                 else
  28.                 {
  29.                     match=false;
  30.                     break;
  31.                 }
  32.             }
  33.         }
  34.         if(sp.empty() && match==true)
  35.             cout<<"yes\n";
  36.         else
  37.             cout<<"no\n";
  38.     }
  39.     return 0;
  40. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     string x;
  6.     while(cin>>x){
  7.         int c=0;
  8.         stack<char> n;
  9.         if(x.length()%2){
  10.             cout<<"no\n";
  11.             continue;
  12.         }
  13.         for(int i=0;i<x.length();i++){
  14.             if(x[i]=='(' || x[i]=='[' || x[i]=='{'){
  15.                 n.push(x[i]);
  16.             }else if(x[i]==')' || x[i]==']' || x[i]=='}'){
  17.                 if(n.empty()){
  18.                     c++;
  19.                     break;
  20.                 }else if((x[i]-n.top())>2){
  21.                     c++;
  22.                     break;                    
  23.                 }else{
  24.                     n.pop();
  25.                 }
  26.             }
  27.         }
  28.    
  29.         if(n.empty() && c==0){
  30.             cout<<"yes\n";
  31.         }else{
  32.             cout<<"no\n";
  33.         }
  34.     }

  35.     return 0;
  36. }
複製代碼

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     string str;

  6.     while(cin>>str)
  7.     {
  8.         stack<char> sp;
  9.         bool match=true;
  10.         for(int i=0;i<str.length();i++)
  11.         {
  12.             if(str[i] =='(' || str[i] =='[' || str[i] =='{')
  13.             {
  14.                 sp.push(str[i]);

  15.             }
  16.             if(str[i] ==')' || str[i] ==']' || str[i] =='}')
  17.             {
  18.                 if(sp.size()==0)
  19.                 {
  20.                     match=false;
  21.                     break;
  22.                 }
  23.                 if(str[i]-sp.top()==2 || str[i]-sp.top()==1)
  24.                 {
  25.                     sp.pop();
  26.                 }

  27.             }
  28.         }
  29.         if(match==true && sp.size()==0)
  30.         {
  31.             cout<<"yes\n";
  32.         }
  33.         else
  34.         {
  35.             cout<<"no\n";
  36.         }
  37.     }
  38. }
複製代碼
    ⪔〠   

TOP

  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     string s;
  6.     while(cin>>s){
  7.         bool m=true;
  8.         stack <char> sp;
  9.         for(int i=0;i<s.length();i++){
  10.             if(s[i]=='('||s[i]=='['||s[i]=='{'){
  11.                 sp.push(s[i]);
  12.             }
  13.             if(s[i]==')'||s[i]==']'||s[i]=='}'){
  14.                 if(sp.empty()){
  15.                     m=false;
  16.                     break;
  17.                 }
  18.                 else if(s[i]-sp.top()==2||s[i]-sp.top()==1){
  19.                     sp.pop();
  20.                 }
  21.             }
  22.         }
  23.         if(sp.empty()&&m){
  24.             cout<<"yes"<<endl;
  25.         }else{
  26.             cout<<"no"<<endl;
  27.         }
  28.     }
  29.     return 0;
  30. }
複製代碼

TOP

返回列表