题解 | #合法的括号字符串#

合法的括号字符串

http://www.nowcoder.com/practice/eceb50e041ec40bd93240b8b3b62d221

import java.util.*;

public class Solution {

public boolean isValidString (String s) {
    // write code here
    //取代掉()
    s= s.replaceAll("\\(\\)", "");
    char[] charArray = s.toCharArray();
    //由左向右匹配“(”
    for (int i = 0; i < charArray.length; i++) {
        if(charArray[i]=='('){
            computeIsValid(i+1,charArray);
        }
    }
    //由左向右匹配"*"
    for (int i = 0; i < charArray.length; i++) {
        if(charArray[i]=='*'){
            computeIsValid2(i+1,charArray);
        }
    }
    //判断
    for (char c : charArray) {
        if (c == '(' || c == ')') {
            return false;
        }
    }
    return true;
}

private void computeIsValid2(int i, char[] charArray) {
    for (int j = i; j < charArray.length; j++) {
        if(charArray[j]==')'){
            charArray[j]=0;
            break;
        }
    }
}

private void computeIsValid(int i, char[] charArray) {
    boolean flag = true;
    for (int j = i; j < charArray.length; j++) {
        if(charArray[j]==')'){
            flag=false;
            charArray[j]=0;
            charArray[i-1]=0;
            break;
        }
    }
    if(flag){
        for (int j = i; j < charArray.length; j++) {
            if(charArray[j]=='*'){
                charArray[j]=0;
                charArray[i-1]=0;
                break;
            }
        }
    }
}

}

全部评论

相关推荐

头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务