使用堆栈的分隔符匹配

时间:2016-06-19 06:14:14

标签: java data-structures linked-list stack

我在这里遇到一个小问题,你可以考虑回答;

这是代码;

public void analyze (String input, int length, int j){
    if (j == length){
        return;
    }
    if(input.charAt(j) == '{' || input.charAt(j) == '(')
        push(input.charAt(j));
    else
        pop();
    j++;    

    analyze (input, length, j);
}

输出:

Original List: {()}



List: {

嗯,问题是List应该是空的,但我似乎无法找到解决方案。

提前谢谢。

以下是完整代码: http://pastebin.com/nXc79gHf

1 个答案:

答案 0 :(得分:0)

  

假设您的输入仅包含'}', '{''(', ')'个字符。

替换为以下代码(假设push()pop()工作正常)...

public void analyze(String input, int length, int j){
        if (j >= length) return;
        if(input.charAt(j) == '{' || input.charAt(j) == '(')
            push(input.charAt(j));
        else if(input.charAt(j) == '}' || input.charAt(j) == ')')
            pop();
        analyze (input, length, ++j);
    }

使用analyze(input, input.length(), 0);

进行通话

实施例。 {()}