竞赛讨论区 > [求助]牛客周赛Round134的E题我的解法为何WA了
头像
牛客203596504号
发布于 昨天 14:10 广东
+ 关注

[求助]牛客周赛Round134的E题我的解法为何WA了

标准答案是:如果全0,输出0,如果全1,输出n,其它输出n-1。

我没有想到官方题解中的这个解法,所以是老老实实做变换的。

但我不明白为何会WA,按理说我的解法的最终输出应该也是正确的:

全0或全1时,由于始终不符合if条件,未做任何变换,所以sum是0或n

其它情况,在进入if后,会被改写成“110”

那么下一位就是“10X”,必然再次进入if

如此往复递推,直到整个数列只剩末尾的0,即“11......10”,输出n-1

所以我不明白为何WA了,有没有办法看一下用例?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t=in.nextInt();
        while(t-->0){
            in.nextInt();
            char[] cs=in.next().toCharArray();
            int[] array=new int[cs.length];
            for(int i=0;i<array.length;i++) array[i]=cs[i]&1;
            for(int i=0;i<array.length-2;i++){
                int sum=array[i]+array[i+1]+array[i+2];
                if(sum==1||sum==2){
                    array[i]=1;
                    array[i+1]=1;
                    array[i+2]=0;
                }
            }
            int sum=0;
            for(int i=0;i<array.length;i++) sum+=array[i];
            System.out.println(sum);
        }
    }
}

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐