import java.util.*;public final class beautiful { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner sc=new Scanner(System.in); String W=sc.nextLine(); //把字母存入字符串数组 String[] W_Arrays=new String[W.length()]; for(int i=0;i<W.length();i++) { W_Arrays[i]=W.substring(i, i+1); } //利用数组删除相同元素,减少for循环的运行时间 List<String> list=new ArrayList<String>(); list.addAll(Arrays.asList(W_Arrays)); //k用于判断元素是否出现偶数次 int k=1,n=0; boolean flag=true; while(true) { for(int j=1;j<list.size();j++) { if(list.get(n).equals(list.get(j))){ k++; list.remove(list.get(j)); } } //第二层循环完毕,判断k是否为偶数 if(k%2!=0) { System.out.println("NO"); flag=false;//不为0则退出第一层循环,输出结果 }else { list.remove(list.get(n));//如果为偶数则删除最开始的元素 k=0; } } if(list.size()==0) { System.out.println("YES"); } }} 报错如下:Exception in thread "main" java.lang.Error: 无法解析的编译问题: at com.ACM.beautiful.main(beautiful.java:6)
1 回答
已采纳
imooc_幕课网
TA贡献12条经验 获得超3个赞
错误的位置:
for(int i=0;i<W.length();i++) { W_Arrays[i] = W.substring(i, i+1); }
当 i = W.length()-1时 ; W.substring(i,i+1);就会造成下标越界。
for(int i=0;i<W.length();i++) { if( i< W.length()-1 ) W_Arrays[i] = W.substring(i, i+1); else W_Arrays[i] = W.substring(i); }
添加回答
举报
0/150
提交
取消