原题,例如输入 1,2,3,5,6,7,8,9,11,13,14
输出 1-3,5-9,11,13-14
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[] split = s.split(","); if ( split.length == 0 ){ System.out.println(""); return; } if ( split.length == 1 ){ System.out.println(split[0]); return; } List<String> ls = new ArrayList<>(); int begin = Integer.valueOf(split[0]); int end = Integer.valueOf(split[0]); for (int i = 1; i < split.length; i++) { int z = Integer.valueOf(split[i]); if ( z != (++end) ){ ls.add(begin== (end-1)? String.valueOf(begin):begin+"-"+(end-1)); begin = end= z; } if ( i == split.length-1 ){ ls.add(begin== end? String.valueOf(begin):begin+"-"+end); } } StringBuilder sb = new StringBuilder(); for (int i = 0; i <ls.size() ; i++) { sb.append(ls.get(i)); if ( i != ls.size()-1 ){ sb.append(","); } } System.out.println(sb.toString()); }
牛客网机试一直说未通过全部示例,但是我本地测试了很多不同的案例都没看到问题。不知道问题究竟在哪儿。还是我可能理解的有误