题目描述
现在有一个只包含小写字母的字符串,两个人轮流进行操作,每次操作可以选择相邻的相同字母并将其一起消除,游戏将一直进行到其中一人无法操作,首先无法操作的人会输掉这场游戏,请问先手的人能否赢下游戏?
输入:
3
abcdcba
aab
baab
样例输出:
No
Yes
No
代码(通过率70%)
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
String[] str=new String[n];
for(int i=0;i<n;i++){
str[i] = sc.next();
}
for(int i=0;i<n;i++){
clear(str[i]);
}
}
private static void clear(String str) {
StringBuilder stack = new StringBuilder();
int head = -1;
int id=0;
for (int i = 0; i < str.length(); i++) {
if (stack.length() > 0) {
if (stack.charAt(head) == str.charAt(i)) {
id++;
stack.deleteCharAt(head);
head--;
continue;
}
}
stack.append(str.charAt(i));
head++;
}
if(stack.length()==str.length()){
System.out.println("No");
}else{
if(id%2==0){
System.out.println("No");
}else{
System.out.println("Yes");
}
}
// return stack.length();
}
}