运行java的代码发现个问题,求各位解答
查看原帖
运行java的代码发现个问题,求各位解答
1237294
Cx620楼主2023/12/21 23:08

我用java的代码解决这个题,发现个问题 首先是44分的代码,报错的都是RE:

import java.util.Scanner;

/**
 * @author WUHAO
 * @create 2023-12-21 22:30
 */
public class P3741
{
    static int N=110;
    static char[] ch=new char[N];
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        ch = scan.next().toCharArray();
        int res=0;
        for(int i=0;i<n;i++)
        {
            if(ch[i]=='V'&&ch[i+1]=='K')
            {
                res++;
                ch[i]='X';
                ch[i+1]='X';
            }
        }
        for(int i=0;i<n;i++)
        {
            if(ch[i]!='X'&&ch[i]==ch[i+1])
            {
                res++;
                break;
            }
        }
        System.out.println(res);
    }
}

其次是满分代码:

import java.util.Scanner;

/**
 * @author WUHAO
 * @create 2023-12-21 22:30
 */
public class P3741
{
    static int N=110;
    static char[] ch=new char[N];
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        ch = scan.next().toCharArray();
        int res=0;
        for(int i=0;i<n-1;i++)
        {
            if(ch[i]=='V'&&ch[i+1]=='K')
            {
                res++;
                ch[i]='X';
                ch[i+1]='X';
            }
        }
        for(int i=0;i<n-1;i++)
        {
            if(ch[i]!='X'&&ch[i]==ch[i+1])
            {
                res++;
                break;
            }
        }
        System.out.println(res);
    }
}

然后这两个代码就是在for循环中的n是否有-1的区别,有-1的满分,没有-1的44分,然后我在最开始时将我的char数组开到了110,也不会越界,我不太理解为什么会出现这个问题。 求各位大佬帮忙看看

2023/12/21 23:08
加载中...