[LeetCode 는 0 열 에서] No 20. ValidParentheses.

2160 단어 자바LeetCode
제목.
       
     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.
     이 문 제 는 비교적 전형 적 인 데 컴 파일 러 가 코드 기호 가 규칙 에 부합 되 는 지 판단 하 는 것 처럼 스 택 의 간단 한 응용 이다."{", "[", "(" 를 만 났 을 때 스 택 에 들 어 갑 니 다. 이 기호 들 의 짝 을 만 났 을 때 스 택 지붕 을 비교 하고 한 쌍 이 라면 계속 합 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다.
코드
public class Solution {
    public boolean isValid(String s) {
         if(s.length()==0) return true;
        int len=s.length();
        char[] symbolFirst={'(','{','['};
        char[] symbolSecond={')','}',']'};
        char strChar[]=s.toCharArray();     
        Stack sym=new Stack();
        for(int i=0;i<len;i++){
        	  for(int j=0;j<symbolFirst.length;j++){
        		  if(strChar[i]==symbolFirst[j]){
        		      if(len==1){
        				  return false;
        				  }
        			  sym.push(strChar[i]);
        		  }       		  
        	  }
        	  for(int k=0;k<symbolSecond.length;k++){
        		  if(strChar[i]==symbolSecond[k]){
        			  if(sym.isEmpty()){
        				  return false;
        			  }
        			  else{
        				  if(!sym.peek().equals(symbolFirst[k])){
        					  
        					  return false;   
        			      }
        				  else{
        					  sym.pop();
        				  }
        		  }
        	  }}}
        
      if(sym.isEmpty())
        {
        	return true;
        }
        else{
        	return false;
        }   
    }
}

코드 다운로드:https://github.com/jimenbian/GarvinLeetCode
/********************************
* 본문 은 블 로그 에서 "리 보 가 빈"
* 전재 출처 표시:http://blog.csdn.net/buptgshengod
******************************************/

좋은 웹페이지 즐겨찾기