做网站的公司吉林,seo数据分析哪些方面,做网站怎么赚钱 做网站怎么赚钱,手机网站搭建多少钱题目描述#xff1a;
VLANO 是一种对局域网设备进行逻辑划分的技术#xff0c;为了标识不同的VLAN#xff0c;引入VLAN ID(1-4094之间的整数)的概念。
定义一个VLAN ID的资源池#xff08;下称VLAN资源池#xff09;#xff0c;资源池中连续的VLAN用开始VLAN-结束VLAN表…题目描述
VLANO 是一种对局域网设备进行逻辑划分的技术为了标识不同的VLAN引入VLAN ID(1-4094之间的整数)的概念。
定义一个VLAN ID的资源池下称VLAN资源池资源池中连续的VLAN用开始VLAN-结束VLAN表示不连续的用单个整数表示所有的VLAN用英文逗号连接起来。
现在有一个VLAN资源池业务需要从资源池中申请一个VLAN需要你输出从VLAN资源池中移除申请的VLAN后的资源池。
输入描述
第一行为字符串格式的VLAN资源池第二行为业务要申请的VLANVLAN的取值范围为[1,4094]之间的整数。
输出描述
从输入VLAN资源池中移除申请的VLAN后字符串格式的VLAN资源池,输出要求满足题目描述中的格式,并且按照VLAN从小到大升序输出。
如果申请的VLAN不在原VLAN资源池内输出原VLAN资源池升序排序后的字符串即可。
备注
输入VLAN资源池中VLAN的数量取值范围为[2-4094]间的整数,资源池中VLAN不重复且合法([1,4094]之间的整数),输入是乱序的。
用例 输入 1-5 2 输出 1,3-5 说明 原VLAN资源池中有VLAN 1、2、3、4、5从资源池中移除2后剩下VLAN 1、3、4、5按照题目描述格式并升序后的结果为1,3-5.
Java源码
public static void main(String[] args) {Scanner scanner new Scanner(System.in);String line scanner.nextLine();int vlanId Integer.parseInt(scanner.nextLine());String[] split line.split(,);int n split.length;Listint[] intervals new ArrayList();for (int i 0; i n; i) {String id split[i];int[] interval new int[2];// 有 “-” 符号说明是一个区间if (id.contains(-)) {String[] points id.split(-);interval[0] Integer.parseInt(points[0]);interval[1] Integer.parseInt(points[1]);} else {interval[0] Integer.parseInt(id);interval[1] Integer.parseInt(id);}intervals.add(interval);}// 排序Collections.sort(intervals, (a, b)-a[0] - b[0]);// 删除申请的 VLANfor (int i 0; i n; i) {// 要删除的 id 不会包含在后面的任何一个区间内if (intervals.get(i)[0] vlanId) {break;}// 要删除的 id 所在区间已经被找到if (intervals.get(i)[0] vlanId intervals.get(i)[1] vlanId) {if (intervals.get(i)[0] intervals.get(i)[1]) {// 如果该区间只有一个 idintervals.remove(i);} else {if (intervals.get(i)[0] vlanId) {// 删除的点是区间的左边界intervals.get(i)[0];} else if (intervals.get(i)[1] vlanId) {// 删除的点是区间的右边界intervals.get(i)[1]--;} else {// 该区间有多个 id且删除目标 id 后区间一分为二intervals.add(i, new int[]{vlanId 1, intervals.get(i)[1]});intervals.add(i, new int[]{intervals.get(i 1)[0], vlanId - 1});intervals.remove(i 2);}}break;}}// 输出int size intervals.size();for (int i 0; i size - 1; i) {if (intervals.get(i)[0] intervals.get(i)[1]) {System.out.print(intervals.get(i)[0] ,);} else {System.out.print(intervals.get(i)[0] - intervals.get(i)[1] ,);}}if (intervals.get(size - 1)[0] intervals.get(size - 1)[1]) {System.out.println(intervals.get(size - 1)[0]);} else {System.out.println(intervals.get(size - 1)[0] - intervals.get(size - 1)[1]);}
}