zoukankan      html  css  js  c++  java
  • UVA

      Parentheses Balance 

    You are given a string consisting of parentheses () and []. A string of this type is said to be correct:

    (a)
    if it is the empty string
    (b)
    if A and B are correct, AB is correct,
    (c)
    if A is correct, () and [] is correct.

    Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.

    Input 

    The file contains a positive integer n and a sequence of n strings of parentheses () and [], one string a line.

    Output 

    A sequence of Yes or No on the output file.

    Sample Input 

    3
    ([])
    (([()])))
    ([()[]()])()
    

    Sample Output 

    Yes
    No
    Yes
    
    
    
    
    
    水题一道,用stack
    
    
    #include <iostream>
    #include <stack>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    bool is_ok(char x, char y)
    {
    	if (x == '(') return y == ')';
    	if (x == '[') return y == ']';
    	return false;
    }
    
    int main()
    {
    	int T; cin >> T;
    	cin.get();
    	while (T--)
    	{
    		string str; getline(cin, str);
    		stack<char> all;
    		for (size_t i = 0; i < str.length(); i++){
    			char t = str[i];
    			if (all.empty() || !is_ok(all.top(), t))
    				all.push(t);
    			else
    				all.pop();
    		}
    		if (all.empty())
    			cout << "Yes" << endl;
    		else
    			cout << "No" << endl;
    	}
    	return 0;
    }


  • 相关阅读:
    JavaScript中的数组
    JavaScript中的对象
    Highcharts中设置x轴为时间的写法
    CSS 选择器(基础)
    DOM节点
    平衡木蜻蜓
    python2.7 qt4
    C语言优先级
    树莓派与stm32通信
    linux下USB转串口配置
  • 原文地址:https://www.cnblogs.com/kunsoft/p/5312779.html
Copyright © 2011-2022 走看看