leetcode valid parentheses(easy) /java

來源:互聯網
上載者:User

標籤:out   com   一個   string   i++   其他   網上   parent   clear   

題目

首先明確的是,可以有(()) ([])諸如此類的表達的。

然後用棧實現演算法是,較為容易的。

判斷總長度,不是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使我快樂。

我愛記單詞,記單詞使我快樂。

 

leetcode valid parentheses(easy) /java

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.