678. Valid Parenthesis String

 1 //dfs
 2 class Solution {
 3     public boolean checkValidString(String s) {
 4         if(s.length() == 0) return true;
 5         return dfs(s, 0, 0);
 6         
 7     }
 8     
 9     public boolean dfs(String s, int pos, int count){
10         if(count < 0) return false;
11         if(pos == s.length()){
12             if(count == 0){
13                 return true;
14             }else{
15                 return false;
16             }
17         }
18         char c = s.charAt(pos);
19         if(c == '('){
20             return dfs(s, pos+1, count+1);
21         }else if(c == ')'){
22             return dfs(s, pos+1, count-1);
23         }else{
24             return dfs(s, pos+1, count) || dfs(s, pos+1, count+1) || dfs(s, pos+1, count-1);
25         }
26     }
27 }

 

posted @ 2018-10-31 04:15  jasoncool1  阅读(125)  评论(0编辑  收藏  举报