如果s包含长度为2的由相同字母组成的子串,那么这些子串会被消除,余下的子串拼成新的字符串。上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符为止。
例:ABCCBCCCAA AC
思路:栈
import java.util.Scanner;
import java.util.Stack;
public class test2 {
public static void main(String[] str){
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
String[] s=new String[num];
for(int i=0;i<num;i++){
s[i]=sc.next();
}
for(int i=0;i<num;i++)
{
System.out.println(Func(s[i]));
}
}
static String Func(String s){
char[] ch = s.toCharArray();
Stack stack = new Stack();
for (int i = 0; i < ch.length; i++) {
if (stack.empty()) {
stack.push(ch[i]);
}else {
if(stack.peek()==ch[i]){
stack.pop();
}else {stack.push(ch[i]);}
}
}
if(stack.empty()){return “Yes”;}
else {return “No”;}
}
}