腾讯校招的题(牛牛和妞妞玩一个游戏,(牛牛先)依次轮流对某一数列里相同且相邻的两个数字进行删除,无法删除的玩家将输掉这个游戏)
【腾讯校招的题(牛牛和妞妞玩一个游戏,(牛牛先)依次轮流对某一数列里相同且相邻的两个数字进行删除,无法删除的玩家将输掉这个游戏)】如果牛牛赢得比赛,输出:“yes,win!”
如果妞妞赢得比赛,输出:“oh,no ! ”
package Chap2;
public class Demode {
public static String removeRepeatChar(String s) {//找到第一个相邻的数字删除并返回剩下的字符串
if (s == null) {
return "";
}
StringBuffer sb = new StringBuffer();
int i = 0;
int len = s.length();
int flag=0;
if(len==1) {
return s;
}
if(len==2) {
if (s.charAt(0)==s.charAt(1)) {
return "";
}else
return s;
}
while (i < len) {
char c = s.charAt(i);
sb.append(c);
i++;
if(flag==0) {
while (i < len && s.charAt(i) == c) {
sb.delete(i-1,i);
i++;
flag=1;
break;
}
}
}return sb.toString();
}
public static Boolean NN(String s) {//判断数组是否有相邻且相同的数字,有的话则返回true,没有的话则返回false
int i = 0;
int len = s.length();
while (i < len) {
if(i+1< len && s.charAt(i) == s.charAt(i+1)) {//这个是如果这两个值相等,就让i+1取下一个元素
return true;
}else {
i++;
}
}
return false;
}
public static void main(String[] args) {
String str="1100";
int NNIU=0;
while(NN(str)==true) {//当有相邻且相同的字符串的时候就继续,知道没有相邻且相同的字符串就结束
String str_2=removeRepeatChar(str);
NNIU++;
str=str_2;
}
if (NNIU%2==0) {//执行了偶数次则是妞妞赢
System.out.println("no!");
}else {//执行奇数次则是牛牛赢
System.out.println("win!");
}
}}
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量