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;
            }
        }
    }
}

}