zoukankan      html  css  js  c++  java
  • uva673-Parentheses Balance

      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, (A) and [A] 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
    

    这是一道模拟题,注意空行的处理就可以

    #include <iostream>
    #include <stack>
    #include <string>
    #include <map>
    using namespace std;
    
    map<char, char> m;
    stack<char> st1;
    int main(void){
    	string s;
    	int num;
    	int flag;
    
    #ifndef ONLINE_JUDGE
    	freopen("f:\infile.txt", "r", stdin);
    #endif
    	
    	m['('] = ')';
    	m['['] = ']';
    	cin >> num;
    	cin.ignore(10, '
    ');
    	while(num--){
    		getline(cin, s);
    
    		flag = 0;
    		while(st1.size())
    			st1.pop();
    		for(int i = 0; i < s.size(); i++){
    			if((s[i] == '(') || (s[i] == '['))
    				st1.push(s[i]);
    			else if(st1.size() && (s[i] == m[st1.top()])){
    					st1.pop();
    			}
    			else{
    				flag = 1;
    				break;
    			}
    		}
    		if(flag == 1){
    			cout << "No" << endl;
    			continue;
    		}
    		if(!st1.size())
    			cout << "Yes";
    		else
    			cout << "No";
    //		if(num != 0)
    		cout << endl;	
    	}
    	return 0;
    }


查看全文
  • 相关阅读:
    二、JVM — 垃圾回收
    一、JVM — Java内存区域
    四、JVM — 类文件结构
    java 如何重写equal 和hashcode方法(最佳实践)
    Java关于继承中的内存分配
    Linux — 基础知识
    Zookeeper — 应用场景
    分布式服务接口请求的顺序性如何保证?
    如何设计一个高并发系统?
    索引策略
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10721289.html
  • Copyright © 2011-2022 走看看