[英]Valid Parentheses Java
我正在尝试解决 Java 中的有效括号问题(此处在其他地方进行了描述:有效括号)
到目前为止,我的代码如下:
class Solution {
public boolean isValid(String s) {
if(s.charAt(0) ="(") {
if(s.charAt(s.length-1) != ")"){
system.out.println("false");
}
}
if(s.charAt(0) ="[") {
if(s.charAt(s.length-1) != "]"){
system.out.println("false");
}
}
if(s.charAt(0) ="{") {
if(s.charAt(s.length-1) != "}"){
system.out.println("false");
}
}
}
}
目前我收到以下错误:
第 4 行:错误: unexpected type
if(s.charAt(0) ="("){
任何人都可以就问题所在提出建议吗? 我现在无法弄清楚,但觉得这是我忽略的简单事情。
两个紧迫的问题:
char c = 'c';
==
完成的。 单个等号=
用于赋值。所以那一行应该是:
if(s.charAt(0) == '(') { /* ... */ }
请注意,这只会修复您遇到的最直接的错误。 修复之后,还有一些,例如system.out.println()
应该是System.out.println()
。
而且,在解决这个问题之后,我认为你离解决实际任务还有一段距离。 坚持下去,祝你好运!
你的回答有些问题。 Robby Cornelissen在他的回答中指出了一些问题。 而且我还在您的代码中看到了 2 个错误。
s.length
应该是s.length()
。isValid
方法中没有返回语句。第 1 期
在以下语句中,长度后缺少方括号()
。 Length 是 Java 中的一种方法,用于获取您已知的 Java String 的长度。
if(s.charAt(s.length - 1) != ')')
所以你上面的陈述应该如下。
if(s.charAt(s.length() - 1) != ')')
第 2 期
在您的isValid
方法中,它返回一个boolean
值。 该方法的返回类型是boolean
。 但是您没有在方法中返回任何布尔值。 所以你必须添加一个return语句。 可能是,
return true;
或return false;
或在isValid
方法中声明的任何boolean variable
。
最好在 Java 中使用堆栈作为有效括号
class Solution {
public boolean isValid(String s) {
Stack stack = new Stack();
for(int i=0; i<s.length; i++){
if(s[i] =='('){
stack.push(')')
}
else if(s[i] == '['){
stack.push(']')
}
else if(s[i] =='{'){
stack.push('}')
}
else if(s[i] !== stack.pop()){
return false;
}
}
return true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.