我写了代码,它产生了正确的输出,但它不能满足所有的要求,请优化我的代码或给我一些建议。
这是我的密码..。
//这是我的代码,它产生正确的输出,但不是完全的需求。
public String flipCoins(int N,String s) {
char ch[] = new char[N];
for(int i=0;i<N;i++){
ch[i] = s.charAt(i);
}
for(int i=1;i<N;i++){
if(ch[i] == '1' || ch[i-1] == '1'){
ch[i] = '1';
ch[i-1] = '1';
}else if(ch[i] == '0' || ch[i-1] == '0'){
ch[i] = '1';
ch[i-1] = '1';
}else if(ch[i] == '0' || ch[i-1] == '1'){
ch[i] = '1';
ch[i-1] = '0';
}else if(ch[i] == '1' || ch[i-1] == '0'){
ch[i] = '0';
ch[i-1]='1';
}
}
int count = 0;
for(char c: ch){
if(c == '1')
count++;
}
if(count == N)
return "Yes";
else
return "No";
}发布于 2022-02-06 12:09:28
我从这个问题中学到的是,你可以任意时间翻转,所以这个问题归结起来是为了找出是否有偶数。0或非符号,因为您可以将00对交换成11对,否则总是10或01。
https://stackoverflow.com/questions/70757201
复制相似问题