我用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,也不会越界,我不太理解为什么会出现这个问题。 求各位大佬帮忙看看