摘要: 一,题目 2对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())思路:采用递归的方式进行搜索核心代码:方法一:深度搜索到叶节点后,再判断是否匹配void matchnum1(int nsize,int len,vector<char> &v){ /* cout<<"nsize:"<<nsize<<"len:"<<len<<endl; vector<char>::iterator i; for(i=v.begin();i!=v.end();i+ 阅读全文
posted @ 2012-08-29 15:50 wuzhibin 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 括号匹配(二)时间限制:1000 ms | 内存限制:65535 KB难度:6描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入第一行输入一个正整数N,表示测试数据组数(N<=10)每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行样例输入4 阅读全文
posted @ 2012-08-29 11:00 wuzhibin 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No。样例输入3[(])(])([[]()])样例输出NoNoYes解题思路: 模拟栈操作: 遇到‘(’,‘【‘ 入栈 遇 阅读全文
posted @ 2012-08-29 10:56 wuzhibin 阅读(222) 评论(0) 推荐(0) 编辑