zoukankan      html  css  js  c++  java
  • B

    - 题目大意

         给出两个字符()【】,然后根据给的条件来判断。

    - 解题思路

        根据给的三个条件,然后利用栈来处理,对于暂时没有后括号匹配的前括号压入栈,遇到后括号时看栈顶的前括号与其是否匹配,如果匹配则弹出该前括号。还要判断下最后栈里面是不是有剩下的没有匹配的前括号。(注意空字符也行)

    - 代码

    #include<iostream>
    #include<stack>
    #include<cstring>
    
    using namespace std;
    
    int main()
    {
    	int x;
    	char c[200];
    	cin >> x;
    	getchar();
    	while (x--)
    	{
    		stack<char>num;
    		gets(c);
    		if (strcmp(c, "
    ") == 0)
    		{
    			cout << "Yes" << endl;
    			continue;
    		}
    		int a = strlen(c);
    		for (int i = 0; i<a; i++)
    		{
     		   if (c[i] == '('||c[i]=='[')
    			{
    				num.push(c[i]);
    				continue;
    			}
    		   else if (num.empty())
    		   {
    			   num.push(c[i]);
    		   }
    		   else if (c[i] == ')'&&num.top()=='('|| c[i] == ']'&&num.top() == '[')
    				{
    					num.pop();
    				}
    				else
    				{
    					num.push(c[i]);
    					break;
    				}
    			}
    		
    		if (num.empty())
    			cout << "Yes" << endl;
    		else
    		   cout << "No" << endl;
    			
    	}
    
    	return 0;
    }
    

      

  • 相关阅读:
    【YbtOJ#911】欧拉函数
    【CF590E】Birthday
    打印控件的区别
    RPA教程
    UiPath培训教程
    RPA视频教程
    搭建samba服务
    kvm虚拟机在线扩容
    zabbix监控交换机
    UiPath Level3讲解
  • 原文地址:https://www.cnblogs.com/alpacadh/p/8438480.html
Copyright © 2011-2022 走看看