我正在尝试解决Java中的有效括号问题(此处在其他地方进行了介绍:Valid Parentheses)
到目前为止,我的代码如下:
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) ="("){
任何人都可以就问题所在提出建议吗?我目前无法弄清楚,但感觉到我忽略了它。
答案 0 :(得分:2)
两个直接问题:
char c = 'c';
==
进行原始比较。单等号=
用于分配。因此该行应为:
if(s.charAt(0) == '(') { /* ... */ }
请注意,这只能修复您遇到的最直接的错误。解决此问题后,还有更多,例如system.out.println()
应该是System.out.println()
。
而且,在解决此问题之后,我认为您仍然无法解决实际的任务。只要坚持下去,祝你好运!
答案 1 :(得分:1)
您的答案中有一些问题。 Robby Cornelissen为您指出了他的answer中的一些问题。而且我还看到您的代码中有2个错误。
s.length
应该是s.length()
。isValid
方法中没有return语句。问题1
在下面的语句中,长度后缺少括号()
。长度是Java中的一种方法,用于获取您已经知道的Java字符串的长度。
if(s.charAt(s.length - 1) != ')')
因此您的上述陈述应如下。
if(s.charAt(s.length() - 1) != ')')
问题2
在您的isValid
方法中,它返回一个boolean
值。该方法的返回类型为boolean
。但是您不会在方法内部返回任何布尔值。因此,您必须添加一个return语句。可能是
return true;
或return false;
或在boolean variable
方法中声明的任何isValid
。