leetcode valid parentheses(easy) /java

题目如图

首先明确的是,可以有(()) ([])诸如此类的表达的。

然后用栈实现算法是,较为容易的。

判断总长度,不是2的倍数,返回false。

如果第一个是)]},返回false。

如果是( [  {则压入栈中

如果是)则看栈顶是不是(,如果不是,那么返回false。其他,类似。

执行完循环,如果栈为空,返回true。栈不为空,返回false。

用linkedlist实现栈。

构造函数,举例:

    LinkedList link=new LinkedList();
    LinkedList<String> link=new LinkedList<String>();

注意,不能是

    LinkedList<char> link=new LinkedList<char>();

这个例子是错的。至于为什么是错的,我不知道。我实践过,不对,并看到网上竟没有这种用法,所有处理字符char时把它当作string处理吧,如本题。

方法

add方法

clear方法

clone方法

remove方法

get方法

import java.io.*;
import java.util.*;

public class Solution
{
    public static boolean isValid(String s) {
        int len=s.length();
        if(len%2==1)
            return false;
        char[] c=s.toCharArray();
        int i;
        LinkedList<String> linkl=new LinkedList<String>();
        int index=0;
        if(c[0]==‘)‘||c[0]==‘]‘||c[0]==‘}‘)
            return false;
        for(i=0;i<len;i++)
        {
            switch(c[i])
            {
                case ‘(‘:linkl.add("(");break;
                case ‘)‘:
                    if(linkl.getLast()=="(")
                        linkl.removeLast();
                    else
                        return false;
                    break;
                case ‘[‘:linkl.add("[");break;
                case ‘]‘:
                    if(linkl.getLast()=="[")
                        linkl.removeLast();
                    else
                        return false;
                    break;
                case ‘{‘:linkl.add("{");break;
                case ‘}‘:
                    if(linkl.getLast()=="{")
                        linkl.removeLast();
                    else
                        return false;
                    break;
                default: return false;
            }
        }
        if(linkl.size()==0)
            return true;
        else
            return false;
    }
    public static void main(String[] args)
    {
        System.out.println(isValid("(([]))[]{}"));
        System.out.println(isValid("()[[{}"));
        System.out.println(isValid("(])[]{}"));
        System.out.println(isValid("(()])}[}[}[]][}}[}{})][[(]({])])}}(])){)((){"));
    }
}

我爱coding,coding使我快乐。

我爱记单词,记单词使我快乐。

时间: 2024-10-11 06:26:42

leetcode valid parentheses(easy) /java的相关文章

LeetCode: Valid Parentheses [020]

[题目] Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]

LeetCode——Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]"

Leetcode: Valid Parentheses 有效的括号匹配

Valid Parentheses: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]"

[LeetCode] 020. Valid Parentheses (Easy) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 020.Valid_Parentheses (Easy) 链接: 题目:https://oj.leetcode.com/problems/valid-parentheses/ 代码(github):https://github.com/illuz/leetcode 题意: 判断一个括号字符串是否是有效的. 分析:

LeetCode: Valid Parentheses 解题报告

Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" a

LeetCode中Valid Parentheses的JAVA实现

先上题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)

[leetcode] 20. Valid Parentheses (easy)

原题链接 匹配括号 思路: 用栈,遍历过程中,匹配的成对出栈:结束后,栈空则对,栈非空则错. Runtime: 4 ms, faster than 99.94% of Java class Solution { public boolean isValid(String s) { Stack<Character> sta = new Stack<Character>(); for (int i = 0; i < s.length(); i++) { char temp = s

[Leetcode] valid parentheses 有效括号对

Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid. The brackets must close in the correct order,"()"and"()[]{}"are all valid but"(]"and"([)]"are not. 题意:给

leetcode Add Binary (easy) /java

二进制的加法 经过测试之后,发现没有考虑整型数据溢出. leetcode经常会有一些意想不到的例外.我以为是一道解法很丰富的题,选择了:把string转为int,用int的加法,再转为string返回.因为我讨厌用字符串来进位.但是溢出了.可以改进一下,用BigInteger这个类. 先贴上我的错误代码. import java.io.*; import java.util.*; import java.lang.*; public class Solution { public static