• 1354括弧匹配检验


    题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1354

    第一次代码如下

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char s[300];
     4 char sta[300];
     5 int pd(char s[300])
     6 {
     7     int top=0,i=0;
     8     while(i<=strlen(s))
     9     {
    10         if(s[i]=='('||s[i]=='[')top++;
    11         
    12         if(s[i]==')'&&s[i-1]=='(')top--;
    13         else top++;
    14     
    15         if(s[i]==']'&&s[i-1]=='[')top--;
    16         else top++;
    17         i++;
    18     }
    19     if(top!=0)return 0;
    20     else return 1;    
    21 }
    22 int main()
    23 {
    24     gets(s);
    25     if(pd(s))cout<<"OK";
    26     else cout<<"Wrong";
    27     return 0;
    28 }

    成绩如下

    第二次代码如下:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char sta[300]={0};
     4 int main()
     5 {
     6     int t=0;
     7     string s;
     8     cin>>s;
     9     for(int i=0;i<=s.size()-1;i++)
    10     {
    11         if(s[i]=='('||s[i]=='[')sta[++t]=s[i];//如果是左括号就进栈 
    12         if(s[i]==')'&&sta[t]=='(')t--;
    13         else t++;
    14         if(s[i]==']'&&sta[t]=='[')t--;
    15         else t++;
    16     }
    17     if(t==0)cout<<"OK";
    18     else cout<<"Wrong";
    19     
    20     return 0;
    21 }

    成绩如下(错误都和第一一样)

    第三次代码如下:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char sta[300]={0};
     4 int main()
     5 {
     6     int t=0;
     7     string s;
     8     cin>>s;
     9     for(int i=0;i<=s.size()-1;i++)
    10     {
    11         if(s[i]=='('||s[i]=='[')sta[++t]=s[i];//如果是左括号就进栈 
    12         
    13         if(s[i]==')')if(sta[t]=='(')t--;
    14         else t++;
    15         
    16         if(s[i]==']')if(sta[t]=='[')t--;
    17         else t++;
    18     }
    19     if(t==0)cout<<"OK"<<endl;
    20     else cout<<"Wrong"<<endl;
    21     
    22     return 0;
    23 }

    成绩如下:

    第四次代码如下:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char sta[300]={0};
     4 int main()
     5 {
     6     int t=0;
     7     string s;
     8     cin>>s;
     9     for(int i=0;i<=s.size()-1;i++)
    10     {
    11         if(s[i]=='('||s[i]=='[')sta[++t]=s[i];//如果是左括号就进栈 
    12         
    13         if(s[i]==')'&&sta[t]=='(')t--;
    14         
    15         if(s[i]==']'&&sta[t]=='[')t--;
    16 
    17     }
    18     if(t==0)cout<<"OK";
    19     else cout<<"Wrong";
    20     
    21     return 0;
    22 }

    居然出现如此现象:

    我晕。。。。怎么会出现83分。。。

  • 相关阅读:
    创建错误日志到文件 kiddy
    简单js时钟 kiddy
    Jquery表单验证
    js 地址栏操作
    $().each和$.each的区别
    Ajax与JSON的一些总结
    分页存储过程
    CKeditor 配置使用
    ISAPI_rewrite中文手册
    js向上无缝滚动,网站公告效果
  • 原文地址:https://www.cnblogs.com/tflsnoi/p/8259328.html
Copyright © 2020-2023  润新知