例如,如果括号/括号在以下情况中匹配:
({})
(()){}()
()
依此类推,但如果括号/括号不匹配,则应返回false,例如:
{}
({}(
){})
(()
等等。你能检查一下这个代码吗?提前致谢。
public static boolean isParenthesisMatch(String str) {
Stack<Character> stack = new Stack<Character>();
char c;
for(int i=0; i < str.length(); i++) {
c = str.charAt(i);
if(c == '{')
return false;
if(c == '(')
stack.push(c);
if(c == '{') {
stack.push(c);
if(c == '}')
if(stack.empty())
return false;
else if(stack.peek() == '{')
stack.pop();
}
else if(c == ')')
if(stack.empty())
return false;
else if(stack.peek() == '(')
stack.pop();
else
return false;
}
return stack.empty();
}
public static void main(String[] args) {
String str = "({})";
System.out.println(Weekly12.parenthesisOtherMatching(str));
}
您的代码在处理’{‘和’}’字符时有些困惑。它应该与如何处理’(’和’)’完全平行。
这段代码经过您的稍微修改后,似乎可以正常使用:
public static boolean isParenthesisMatch(String str) {
if (str.charAt(0) == '{')
return false;
Stack<Character> stack = new Stack<Character>();
char c;
for(int i=0; i < str.length(); i++) {
c = str.charAt(i);
if(c == '(')
stack.push(c);
else if(c == '{')
stack.push(c);
else if(c == ')')
if(stack.empty())
return false;
else if(stack.peek() == '(')
stack.pop();
else
return false;
else if(c == '}')
if(stack.empty())
return false;
else if(stack.peek() == '{')
stack.pop();
else
return false;
}
return stack.empty();
}
我需要在和之间匹配文本示例: 我需要匹配这个文本 简单正则表达式将正常工作,直到我在文本中放置一些 文本内的卷括号配对以匹配。 有没有可能通过正则表达式来解决这个问题?
习题3-4 括号匹配检验 假设一个算术表达式中可以包含三种括号:圆括号“(”和“)” 、方圆括号“[”和“]”、和花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。编写判别给定表达式中所含括号是否正确配对出现的算法。若正确配对则输出yes,否则输出no。注意,算术表达式可能没有括号,也可能不合法(不需要判断)。 输入格式: 测试数据有多组,
例3.3.2 括号匹配问题 输入一个由中、小括符组成的字符串。判断其匹配情况,若括号可以成功匹配,则输出yes,否则输出no。 输入格式: 测试数据有多组,处理到文件尾。对于每组测试,输入一个由中、小括符构成的字符串(长度不超过30)。 输出格式: 对于每组测试,若括号可以成功匹配,则输出“yes”,否则输出“no”。引号不必输出。 输入样例: ()[] [()] [(()]] [(]) 输出样例
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)
我们现在把注意力转向使用栈解决真正的计算机问题。你会这么写算术表达式 (5+6)*(7+8)/(4+3) 其中括号用于命令操作的执行。你可能也有一些语言的经验,如 Lisp 的构造 (defun square(n) (* n n)) 这段代码定义了一个名为 square 的函数,它将返回参数的 n 的平方。 Lisp 使用大量的圆括号是臭名昭著的。 在这两个例子中,括号必须以匹配的方式
本文向大家介绍浅析python 中大括号中括号小括号的区分,包括了浅析python 中大括号中括号小括号的区分的使用技巧和注意事项,需要的朋友参考一下 python语言最常见的括号有三种,分别是:小括号( )、中括号[ ]和大括号也叫做花括号{ }。其作用也各不相同,分别用来代表不同的python基本内置数据类型。 1.python中的小括号( ):代表tuple元组数据类型,元组是一种不可变序列