京东笔试题警察,不知道错误在哪(自己找出了问题,谢谢各位)
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,但是赛马网是为空,不太清楚是不是自己写错了。