有效括号Java

时间:2019-09-17 03:34:08

标签: java

我正在尝试解决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) ="("){

任何人都可以就问题所在提出建议吗?我目前无法弄清楚,但感觉到我忽略了它。

2 个答案:

答案 0 :(得分:2)

两个直接问题:

  1. 字符值在Java中用单引号引起来,例如char c = 'c';
  2. 使用==进行原始比较。单等号=用于分配。

因此该行应为:

if(s.charAt(0) == '(') { /* ... */ }

请注意,这只能修复您遇到的最直接的错误。解决此问题后,还有更多,例如system.out.println()应该是System.out.println()

而且,在解决此问题之后,我认为您仍然无法解决实际的任务。只要坚持下去,祝你好运!

答案 1 :(得分:1)

您的答案中有一些问题。 Robby Cornelissen为您指出了他的answer中的一些问题。而且我还看到您的代码中有2个错误。

  1. s.length应该是s.length()
  2. 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