Pour une chaîne, pour concevoir un algorithme de déterminer si elle est un support de chaîne valide.
D' une chaîne et sa longueur A n, le retour à une valeur bool représentant si elle est un support de chaîne valide.
échantillon d' essai:
« (() ()) », 6
Retour: true
échantillon d'essai:
« () Bis () () », 7
Retour: false
échantillon d'essai:
"()(()()",sept
Retour: false
import java.util.*;
//用栈实现
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
Stack<Character> s = new Stack<>();
for(int i = 0;i < n;i++){//循环取括号
char ch = A.charAt(i);
//左括号入栈
if(ch == '(' || ch == '{' || ch== '['){
s.push(ch);
}
//右括号为空(左比右多)不空(匹配)
else if(ch == ')' || ch == '}' || ch == ']'){
if(!s.isEmpty()){
char ch1 = s.peek();//拿到栈顶元素
if((ch1=='(' && ch==')')||(ch1=='{' && ch=='}')||(ch1=='[' && ch==']')){
s.pop();//匹配出栈
}
else{
return false;
}
}
else{
return false;
}
}
else{
return false;
}
}
if(s.isEmpty()){
return true;
}
return false;
}
}
Un seul crochets
public boolean fun(String s) {
if(s.length()%2==1) {
return false;
}
int count=0;
for (char c:s.toCharArray()) {
if(c=='(') {
count++;
}else {
count--;
}
}
return count==0;
}