ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

栈专题996

2022-01-27 08:34:02  阅读:206  来源: 互联网

标签:996 int top else break bl chr 专题


 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char chr[256];
 4 int TOP = 0;
 5 int TTOOPP = 0;
 6 int top = 0;
 7 int main(){
 8     int i = 1;
 9     for(;;i++){
10         chr[i] = getchar();
11         if(chr[i] == '\n') break;
12         if(chr[i]!='('&&chr[i]!=')'&&chr[i]!='['&&chr[i] != ']') top++;
13         if(chr[i] == '(') TOP++;
14         if(chr[i] == ')') TOP--;
15         if(chr[i] == '[') TTOOPP++;
16         if(chr[i] == ']') TTOOPP--;
17     }
18     if(TOP == 0&&TTOOPP == 0&&top == 0) cout<<"OK"<<endl;
19     else cout<<"Wrong"<<endl;
20     return 0;
21 }
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char chr[256];
 4 int main(){
 5     int n;
 6     char i;
 7     cin>>n;
 8     i = getchar();
 9     for(int j = 1;j<=n;j++){    
10     int i = 1;
11     int TOP = 0;
12     int TTOOPP = 0;
13     int top = 0;
14     int ToP = 0;
15     while(getchar()!='\n')
16     {
17         if(getchar() == '('){
18         if(top>0){
19         cout<<"NO"<<endl;
20         i = 0;
21         break;
22         }        
23         else TOP++;
24 }
25         if(getchar() == ')') TOP--;
26         if(getchar() == '['){
27         if(top>0||TOP>0){
28         cout<<"NO"<<endl;
29         i = 0;
30         break;
31         }
32         else TTOOPP++;
33     }
34         if(getchar() == ']') TTOOPP--;
35         if(getchar() == '<') top++;
36         if(getchar() == '>') top--;
37         if(getchar() == '{'){
38         if(top>0||TOP>0||TTOOPP>0){
39         cout<<"NO"<<endl;
40         i = 0;
41         break;
42         }
43         else ToP++;
44     }
45         if(getchar() == '}') ToP--;
46     }
47     if(TOP == 0&&TTOOPP == 0&&top == 0&&ToP == 0) cout<<"YES"<<endl;
48     else cout<<"NO"<<endl;
49 }
50     return 0;
51 }
  1 #include <bits/stdc++.h>
  2 using namespace std;
  3 stack <char> chr;    
  4 int n;    
  5 bool bl;
  6 int l;
  7 int main(void)
  8 {
  9     string C;
 10     cin >> n;
 11     getchar();
 12     while (n--) {
 13         cin>>C;
 14         while (!chr.empty()) chr.pop();
 15         bl = 1;
 16         l = C.length();
 17         for (int i = 0; i<l;i ++) {
 18             if (C[i] == '<') {
 19                 chr.push(C[i]);
 20             }
 21             else if (C[i] == '(') {
 22                 if (!chr.empty()) { 
 23                     if (chr.top() == '<') {
 24                         bl = 0;
 25                         break;
 26                     }
 27                 }
 28                 chr.push(C[i]);
 29             }
 30             else if (C[i] == '[') {
 31                 if (!chr.empty()) { 
 32                     if (chr.top() == '('||chr.top() == '<') {
 33                         bl = 0;
 34                         break;
 35                     }
 36                 } 
 37                 chr.push(C[i]); 
 38             }
 39             else if (C[i] == '{') {
 40                 if (!chr.empty()) { 
 41                     if (chr.top() == '['||chr.top() == '('||chr.top() == '<') {
 42                         bl = 0;
 43                         break;
 44                     }
 45                 } 
 46                 chr.push(C[i]); 
 47             }
 48             else if (C[i] == '>') {
 49                 if (!chr.empty()) {
 50                     if (chr.top() == '<') {
 51                         chr.pop();
 52                     }
 53                     else {
 54                         bl = 0;
 55                         break;
 56                     }
 57                 } 
 58                 else {
 59                     bl = 0;
 60                     break;
 61                 }
 62             }
 63             else if (C[i] == ')') {
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 stack<int> s;
 4 stack<char> chr;
 5 const int N = 5e4+10;
 6 char str[N];    
 7 int M = 0;
 8 bool F = 0;
 9 int chk(char a){
10     if ((a=='-')||(a=='+')) return 1;
11     if ((a=='*')||(a=='/')) return 2;
12     if (a=='^') return 3;
13     return 0;
14 }
15 void cale(stack<int> &s,stack<char> &chr){
16 int a,b;
17 char x;
18 b=s.top();s.pop();
19 a=s.top();s.pop();
20 x=chr.top();chr.pop();
21 if(x == '+') s.push(a+b);
22 if(x == '-') s.push(a-b);
23 if(x == '*') s.push(a*b);
24 if(x == '/') s.push(a/b);
25 if(x == '^') s.push(pow(a,b));
26 }
27 int main(void){
28     cin>>str+1;
29     int n = strlen(str+1);
30    for(int i = 1;i<=n+1;i++){
31        if(str[i]>='0'&&str[i]<='9'){
32            M=M*10+str[i]-'0';
33            F=1;
34        }
35        else{
36        if(F == 1){        
37        s.push(M);
38        F = 0;
39        M = 0;
40        }
41     if(str[i] == '(') chr.push(str[i]);
42     if(str[i] == ')'){
43     while(chr.top() != '(')
44     cale(s,chr);
45     chr.pop();
46     }
47     if(str[i] == '+'||str[i] == '-'||str[i] == '*'||str[i] == '/'||str[i] == '^'){
48     while(chr.empty() == 0&&chk(str[i])<=chk(chr.top())) cale(s,chr);
49     chr.push(str[i]);
50     }
51     if(str[i]=='\0') while(!chr.empty()) cale(s,chr);
52     }
53     }
54     cout<<s.top()<<endl;
55     return 0;
56     
57 }

 

 64                 if (!chr.empty()) {
 65                     if (chr.top() == '(') {
 66                         chr.pop();
 67                     }
 68                     else {
 69                         bl = 0;
 70                         break;
 71                     }
 72                 }
 73                 else {
 74                     bl = 0;
 75                     break;
 76                 }
 77                 
 78             }
 79             else if(C[i] == ']') { 
 80                 if (!chr.empty()) {
 81                     if (chr.top() == '[') {
 82                         chr.pop();
 83                     }
 84                     else {
 85                         bl = 0;
 86                         break;
 87                     }
 88                 }
 89                 else {
 90                     bl = 0;
 91                     break;
 92                 }
 93             }
 94             else if (C[i] == '}') { 
 95                 if (!chr.empty()) {
 96                     if (chr.top() == '{') {
 97                         chr.pop();
 98                     }
 99                     else {
100                         bl = 0;
101                         break;
102                     }
103                 }
104                 else {
105                     bl = 0;
106                     break;
107                 }
108             }
109         }
110         if(chr.empty() && bl) cout<< "YES"<<endl;
111         else cout<<"NO"<<endl;
112     }
113     return 0;
114 }

还有第四第五题的python码

 

1 s = input()
2 
3 p = s.replace('^','**')
4 q = p.replace('/','//')
5 
6 print(eval(q))
 1 s = input()
 2 
 3 p = s.replace('^','**')
 4 q = p.replace('/','//')
 5 # print(q)
 6 
 7 q = q[:-1]
 8 #print(q)
 9 
10 try:
11     res = eval(q)
12 except SyntaxError:
13     print('NO')
14 else:
15     print(eval(q))

 

标签:996,int,top,else,break,bl,chr,专题
来源: https://www.cnblogs.com/Eruption/p/15848667.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有