华为机试题

我是真的笨啊,当时做不出来,第二天就做出来了

package LeetCode.easy;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * 输入1-8   
 *   6
 *输出1-5,6-7
 * @author yilgao
 *
 */
public class huaw2 {
	//1,2,3,4,5,7,8
	//12345,78
	//1-5,7-8
	
	public static void main(String[] args) {
		toSplit("1-8,10,12,16-23,78-99","99");
	}
	
	
	public static void toSplit(String str1,String str2) {
		
		String[] a = str1.split(",");
		List<String> list = new ArrayList<>();
		for(int i=0;i<a.length;i++) {
			if(!a[i].contains("-")) {
				list.add(a[i]);
			}else {
				String[] b = a[i].split("-");
				for(int j=Integer.valueOf(b[0]);j<=Integer.valueOf(b[1]);j++) {
					list.add(String.valueOf(j));
				}
			}
		}
		list.remove(str2);
		
		
		List<String> templ = new ArrayList<>();
		
		StringBuilder sb = new StringBuilder();
		for(int m = 0;m<list.size();m++) {
			if(m+1!=list.size()) {
				if(Integer.valueOf(list.get(m+1))-Integer.valueOf(list.get(m))==1) {
					templ.add(list.get(m));
				}else {
					templ.add(list.get(m));
					if(templ.size()==1) {
						sb.append(templ.get(0)).append(",");
					}else {
						sb.append(templ.get(0)).append("-").append(templ.get(templ.size()-1)).append(",");
					
					}
					templ = new ArrayList<>();
				}
			}else {
				templ.add(list.get(m));
			}
		}
		
		if(templ.size()==1) {
			sb.append(templ.get(0)).append(",");
		}else {
			sb.append(templ.get(0)).append("-").append(templ.get(templ.size()-1)).append(",");
		}
		
		System.out.print(sb.substring(0, sb.length()-1));
		
		
	}
	
	

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值