HF_Cherish

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. Problem

一个字符串只能包含 '('')''{''}''[' 和 ']',判断字符串是否是闭合有效字符串。

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.

2. Solution

用字符串数组来模拟栈

 1 public class Solution {
 2     public boolean isValid( String s ){
 3         int len = s.length();
 4         if( len % 2 != 0 )
 5             return false;
 6         char[] left = new char[len];
 7         int count = -1;
 8         for( int i=0; i<len; i++ ){
 9             char curr = s.charAt(i);
10             if( curr=='(' || curr=='{' || curr=='['  )
11                 left[++count] = s.charAt(i);
12             else{
13                 if( count>=0 && ( left[count] == curr-2 || left[count] == curr-1 ) )
14                     count--;
15                 else return false;
16             }        
17         }
18         if( count>=0 )
19             return false;
20         return true;
21     }
22 }

 

posted on 2015-07-22 21:58  HF_Cherish  阅读(154)  评论(0编辑  收藏  举报