京东笔试题警察,不知道错误在哪(自己找出了问题,谢谢各位)
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n<1)return ;
String s=sc.next();
char li[]=s.toCharArray();
HashSet num=new HashSet();
for(int i=0;i<n;i++){
char a=li[i];
if(a=='#')
continue;
else if(a=='X')
continue;
else {
int b=a-'0';
int sta=i-b;
int end=i+b;
if(sta<0)
sta=0;
if(end>n)
end=n;
for(int j=sta;j<=end;j++){
if(li[j]=='X'&&j<n)
num.add(j);
}
}
}
System.out.println(num.size());
}
赛码网提示一直是50%,没看到自己错在哪,请各位指点。其中一组测试数据是
1
9
本地跑出来是0,但是赛马网是为空,不太清楚是不是自己写错了。
查看13道真题和解析
上海得物信息集团有限公司公司福利 1164人发布