题目:
题目的大致意思就是要判断括号用的是否合理。
思路:这个是有参考别人的代码
首先将开始括号存入list中,在出现右括号时,然后依次从列表中取出左括号,并判断是否匹配,若不匹配则不正确,否则就将列表中的这一项删除,匹配下一项逐步判断。
代码:
import java.awt.List;
import java.util.ArrayList;
public class valid_Parentheses_20 {
public static boolean isValid(String s) {
char[] charArray = s.toCharArray();
ArrayList<Character> list = new ArrayList<>();
for(Character ch : charArray){
if(ch == '(' || ch == '[' || ch == '{'){
list.add(ch);
}else{
if(list.isEmpty())
return false;
//这里这一句很关键,一定要在判断list非空之后,才能获取值,不然会报错,顺序很关键
Character first = list.get(list.size()-1);
if(ch == ')' && first != '(')
return false;
else if(ch == ']' && first != '[')
return false;
else if(ch == '}' && first != '{')
return false;
list.remove(list.size()-1);
}
}
if(!list.isEmpty()){
return false;
}
return true;
}
public static void main(String[] args){
String s = "{[()]}";
System.out.println(isValid(s));
System.exit(0);
}
}