袁愈权


私信TA

用户名:dotcpp0787148

访问量:769

签 名:

网工和电子的同学们 万事如意 祝你们也祝我

等  级
排  名 320
经  验 5479
参赛次数 4
文章发表 82
年  龄 19
在职情况 学生
学  校 贺州学院
专  业 网络工程

  自我简介:

雨吗,可惜洗刷不了那些污秽的心

解题思路:

注意事项:

参考代码:

#include"bits/stdc++.h"
using namespace std;
// 定义一个字符栈,用于存储括号
stack<char> st;
int main(){
    // 初始化栈,压入一个特殊字符'#'
    st.push('#');
    // 定义一个字符数组,用于存储输入的字符串
    char s[300];
    // 定义一个标志变量kkk,初始值为1,表示括号匹配状态
    int kkk=1;
    // 定义一个字符变量c,用于存储当前处理的字符
    char c;
    // 从标准输入读取字符串并存入字符数组s中
    cin>>s;
    // 遍历字符串s的每一个字符
    for(int i=0;i<strlen(s);i++){
        // 获取当前字符
        c=s[i];

        // 如果当前字符是右括号')'
        if(c==')'){
            // 检查栈顶元素是否为左括号'('
            if(st.top()!='('){
                // 如果不匹配,设置标志变量kkk为0
                kkk=0;
            }
            else{
                // 如果匹配,弹出栈顶元素
                st.pop();
            }
        }
        // 如果当前字符是右括号']'
        else if(c==']'){
            // 检查栈顶元素是否为左括号'['
            if(st.top()!='['){
                // 如果不匹配,设置标志变量kkk为0
                kkk=0;
            }
            else{
                // 如果匹配,弹出栈顶元素
                st.pop();
            }
        }
        // 如果当前字符是左括号'('或'['
        else{
            // 将当前字符压入栈中
            st.push(c);
        }
    }
    // 检查栈的大小和标志变量kkk的值
    if(st.size()==1&&kkk==1){
        // 如果栈中只剩下初始的特殊字符'#'且标志变量kkk为1,输出"OK"
        cout<<"OK"<<endl;
    }
    else{
        // 否则,输出"Wrong"
        cout<<"Wrong"<<endl;
    }
    return 0;
}


 

0.0分

0 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »