当前位置: 首页 > news >正文

网站规划建设前期规划方案施工合同模板

网站规划建设前期规划方案,施工合同模板,手机网页设计教程,外贸网站建设哪家好题目 VLAN是一种对局域网设备进行逻辑划分的技术#xff0c;为了标识不同的VLAN#xff0c;引入VLAN ID(1-4094之间的整数)的概念。定义一个VLAN ID的资源池(下称VLAN资源池)#xff0c;资源池中连续的VLAN用开始VLAN-结束VLAN表示#xff0c;不连续的用单个整数表示#…题目 VLAN是一种对局域网设备进行逻辑划分的技术为了标识不同的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资源池升序排序后的字符串即可。 示例1: 输入 1-5 2 输出 1,3-5 说明 原VLAN资源池中有VLAN1、2、3、4、5从资源池中移除2后剩下VLAN1、3、4、5按照题目描述格式并升序后的结果为1,3-5。 示例2: 输入 20-21,15,18,30,5-10 15 输出 5-10,18,20-21,30 说明 原VLAN资源池中有VLAN5、6、7、8、9、10、15、18、20、21、30从资源池中移除15后资源池中剩下的VLAN为5、6.7、8、9、10、18、20、21、30按照题目描述格式并升序后的结果为5-10,18,20-21,30。 示例3: 输入 5,1-3 10 输出 1-3,5 说明 原VLAN资源池中有VLAN1、2、35申请的VLAN 10不在原资源池中将原资源池按照题目描述格式并按升序排序后输出的结果为1-3,5。 备注: 输入VLAN资源池中VLAN的数量取值范围为[2-4094]间的整数资源池中VLAN不重复且合法([1,4094]之间的整数)输入是乱序的。 思路 先将输入转为自定义对象VLAN集合list包含两个属性start和end不连续的单个整数其start和end相等 将list排序VLAN实现Comparable接口从而实现自定义排序按照start值的升序排序题目输入数据无重复所以start不可能相等 需要找到目标target业务申请的VLAN编号在排序后的list中的索引位置idx(starttargetend即可) list中移出idx的元素并考虑是否会产生新的区间 如果匹配的区间是单个整数直接移出即可否则产生两个新的区间[target1,end],[start,target-1]将新区间加入到list中需对list重新排序 遍历list按照格式组装结果即可。如果是单个则输出单个否则输出start-end的形式。可通过重写VLAN的toString方法实现 题解 package hwod;import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner;public class VlanPool {public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();int target sc.nextInt();System.out.println(vlanPool(str, target));}private static String vlanPool(String str, int target) {ListVlan list new ArrayList();String[] split str.split(,);for (int i 0; i split.length; i) {if (split[i].contains(-)) {String[] range split[i].split(-);list.add(new Vlan(Integer.parseInt(range[0]), Integer.parseInt(range[1])));} else {list.add(new Vlan(Integer.parseInt(split[i]), Integer.parseInt(split[i])));}}Collections.sort(list);int idx -1;//target在list的哪个位置for (int i 0; i list.size(); i) {Vlan cur list.get(i);if (target cur.getStart() target cur.getEnd()) {idx i;break;}}if (idx ! -1) {//移出目标Vlan cur list.get(idx);list.remove(idx);if (target cur.getStart()) {Vlan range1 new Vlan(cur.getStart(), target - 1);list.add(range1);}if (target cur.getEnd()) {Vlan range2 new Vlan(target 1, cur.getEnd());list.add(range2);}Collections.sort(list);}//返回结果StringBuilder sb new StringBuilder();for (int i 0; i list.size(); i) {if (i ! 0) sb.append(,);sb.append(list.get(i));}return sb.toString();} }class Vlan implements ComparableVlan {private int start;private int end;public Vlan(int start, int end) {this.start start;this.end end;}public int getStart() {return start;}public void setStart(int start) {this.start start;}public int getEnd() {return end;}public void setEnd(int end) {this.end end;}Overridepublic int compareTo(Vlan o) {return this.start - o.start;}Overridepublic String toString() {if (start end) return String.valueOf(start);return start - end;} } 上述实现是先将内容加入了list再找到目标位置移除后再排序。实际可以直接在加入时判断其是否为目标范围优化如下 package hwod;import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner;public class VlanPool {public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();int target sc.nextInt();System.out.println(vlanPool(str, target));}private static String vlanPool(String str, int target) {ListVlan list new ArrayList();String[] split str.split(,);for (int i 0; i split.length; i) {Vlan vlan null;if (split[i].contains(-)) {String[] range split[i].split(-);vlan new Vlan(Integer.parseInt(range[0]), Integer.parseInt(range[1]));} else {vlan new Vlan(Integer.parseInt(split[i]), Integer.parseInt(split[i]));}if (target vlan.getStart() target vlan.getEnd()) {if (target vlan.getStart()) {list.add(new Vlan(vlan.getStart(), target - 1));}if (target vlan.getEnd()) {list.add(new Vlan(target 1, vlan.getEnd()));}} else {list.add(vlan);}}Collections.sort(list);//返回结果StringBuilder sb new StringBuilder();for (int i 0; i list.size(); i) {if (i ! 0) sb.append(,);sb.append(list.get(i));}return sb.toString();} }class Vlan implements ComparableVlan {private int start;private int end;public Vlan(int start, int end) {this.start start;this.end end;}public int getStart() {return start;}public void setStart(int start) {this.start start;}public int getEnd() {return end;}public void setEnd(int end) {this.end end;}Overridepublic int compareTo(Vlan o) {return this.start - o.start;}Overridepublic String toString() {if (start end) return String.valueOf(start);return start - end;} } 推荐 如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。
http://www.tj-hxxt.cn/news/216811.html

相关文章:

  • wordpress网站打开很卡asp商城网站源码下载
  • 中国做的电脑系统下载网站公司域名注册流程
  • 国家住房城乡建设厅网站wordpress投票模板
  • 太原适合网站设计地址网页设计培训哪家机构好
  • 网站备案需要多久时间北京seo公司优化网络可见性
  • 教师个人网站建设天津建设网站公司
  • 网站域名过户查询南通seo快速排名
  • html5响应式网站制作utc wordpress
  • 创建网站的网站哈尔滨网站建设设计
  • 招远 两学一做 网站岱山建设局网站
  • wordpress全站启用ssl网页制作代码示例
  • 南京网站制作链接三只小猪的题目登网站做
  • 江苏省网站备案系统设计师人才网
  • 电子商务网络营销的特点湛江网站优化快速排名
  • 微网站开发平台有哪些南宁seo团队哪家好
  • 学做ppt网站长沙移动网站
  • html在线编辑网站关键词推广技巧
  • 营销网站有多种类型企业网站外包托管推广
  • 企业网站建设的常见流程为合肥手机网站开发
  • 厦门网站设计公司找哪家厦门小程序建设如何做好企业网站
  • 网站开发5000互联网保险公司有几家
  • 广告推广合同范本网站关键词优化效果
  • 5个网站建设跟我学seo从入门到精通
  • 旅游网站排名排行榜连云港网站关键字优化市场
  • 网站代做网站建设服务费要不要折旧呢
  • 站长统计是什么意思怎么做企业网站原型
  • 昆明网站建站网络营销八大目标是什么
  • 互联网站备案表浙江住房和建设网站
  • 网站设计人员就业要求建站资源共享
  • 经典重庆网站php免费开源crm系统