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

临沂做商城网站网站关键词优化排名

临沂做商城网站,网站关键词优化排名,济南联通网站备案,初号一号二号三号字体wordpress题目描述: VLAN是一种对局域网设备进行逻辑划分的技术,为了标识不同的VLAN,引入VLAN ID(1-4094之间的整数)的概念。 定义一个VLAN ID的资源池(下称VLAN资源池),资源池中连续的VLAN用开始VLAN-结束VLAN表示,不连续的用单…

题目描述:

      VLAN是一种对局域网设备进行逻辑划分的技术,为了标识不同的VLAN,引入VLAN ID(1-4094之间的整数)的概念。 定义一个VLAN ID的资源池(下称VLAN资源池),资源池中连续的VLAN用开始VLAN-结束VLAN表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。现 在有一个VLAN资源池,业务需要从资源池中申请一个VLAN,需要你输出从VLAN资源池中移除申请的VLAN后的资源池。

输入描述:

第一行为字符串格式的VLAN资源池,

第二行为业务要申请的VLAN,VLAN的取值范围为[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。

输入: 20-21,15,18,30,5-10       

                15

输出: 5-10,18,20-21,30

说明: 原VLAN资源池中有VLAN 5、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。

输入: 5,1-3 10

输出: 1-3,5

说明: 原VLAN资源池中有VLAN 1、2、3,5,申请的VLAN 10不在原资源池中,将原资源池按照题目描述格式并按升序排序后输出的结果为1-3,5。

java 程序

package com.tarena.test.B10;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
import java.util.StringJoiner;
import java.util.stream.Collectors;

/**
 * 
 
题目描述:

      VLAN是一种对局域网设备进行逻辑划分的技术,为了标识不同的VLAN,引入VLAN ID(1-4094之间的整数)的概念。 定义一个VLAN ID的资源池(下称VLAN资源池),资源池中连续的VLAN用开始VLAN-结束VLAN表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。现 在有一个VLAN资源池,业务需要从资源池中申请一个VLAN,需要你输出从VLAN资源池中移除申请的VLAN后的资源池。

输入描述:

第一行为字符串格式的VLAN资源池,

第二行为业务要申请的VLAN,VLAN的取值范围为[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。

输入: 20-21,15,18,30,5-10       

                15

输出: 5-10,18,20-21,30

说明: 原VLAN资源池中有VLAN 5、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。

输入: 5,1-3 
      10

输出: 1-3,5

说明: 原VLAN资源池中有VLAN 1、2、3,5,申请的VLAN 10不在原资源池中,将原资源池按照题目描述格式并按升序排序后输出的结果为1-3,5。
 * @author Administrator
 *
 */
public class B13 {
    
    
    public static void main(String[] args) {
        try(Scanner sc = new Scanner(System.in);){
            String vlans = sc.nextLine();
            Integer need = Integer.parseInt( sc.nextLine());
            System.out.println(resultStr(vlans,need));
        }
    }
    
    public static String resultStr(String vlans,Integer need) {
        String[] vlanStr = vlans.split(",");
        LinkedList<Integer[]> list = Arrays.stream(vlanStr).map(
                temp->Arrays.stream(temp.split("-")).map(Integer::parseInt).toArray(Integer[]::new))//
        .sorted((a,b)-> (a[0] - b[0]) )
        .collect(Collectors.toCollection(LinkedList::new));
        for(int i=0;i<list.size();i++) {
            Integer[] tempArr = list.get(i);
            if(tempArr.length==1) {
                if(tempArr[0]==need) {
                    list.remove(i);
                    break;
                }
            }else {
                //比结尾大。结束本次循环
                if(need>tempArr[1]) {
                    continue;
                }
                //比开始小,结束本次循环,而且需要的数不存在
                if(need<tempArr[0]) {
                    break;
                }
                //结尾的值
                if(need==tempArr[1]) {
                    list.set(i, newArray(tempArr[0],tempArr[1]-1));//List 的set 方法与add方法这里可以变换使用。如果用add,前面要先调用删除 remove(i);
                //开始的值    
                }else if(need==tempArr[0]){
                    list.set(i, newArray(tempArr[0]+1,tempArr[1]));
                }else {
                    //list.remove(i);
                    //先添加后面的数组
                    list.set(i, newArray(need+1,tempArr[1]));
                    //再添加前面的数组,刚添加的数组自动向后一位
                    list.add(i, newArray(tempArr[0],need-1));
                }
                break;
            }
        }
        //拼接字符串处理类
        StringJoiner returnStr = new StringJoiner(",");
        list.stream().map(arr ->
            { if(arr.length>1) {//这一块有人也是用的 StringJoiner 来实现 大家觉得哪种方式好呢;
                            return arr[0]+"-"+arr[1];
                            }else {
                                return arr[0]+"";
                            }
                    }
        ).forEach(returnStr::add);//temp1 -> returnStr.add(temp1)
        return returnStr.toString();
    }

    public static Integer[] newArray(Integer begin,Integer end) {
        if(begin < end) {
            return new Integer[] {begin,end};
        }else {
            return new Integer[] {begin};
        }
    }
}
了解知识点

1、StringJoiner 类,之前自己写过类似的功能类,但是不知道java自带的这个类;

2、Arrays 感觉很久没有用这个工具类,专门处理数组的类

3、Stream 流的使用 里面的.map(), .sort(),.collect()等发放使用还有.forEach等方法

http://www.hkea.cn/news/214394/

相关文章:

  • java做网站编程合肥seo快排扣费
  • 做律师网站公司google play下载
  • 网站怎么做详情页北京网站制作建设公司
  • 广告网站模板下载不了东莞排名优化团队
  • 网站建设人员培训纲要河北seo网络推广
  • jsp网站开发实例视频教程各大网站的网址
  • 手机网站设计要素推广竞价
  • 久久医药网seo推广培训费用
  • 网站做301顶级域名需要绑定网站排名掉了怎么恢复
  • wordpress app 源码合肥seo整站优化网站
  • 建立网站基本步骤安仁网络推广
  • 网页建设方案怎么写网站seo优化心得
  • 还没有做网站可以先备案域名吗seo怎么提升关键词的排名
  • 做网站原型图软件优化设计七年级下册语文答案
  • 2023年舆情分析报告seo优化宣传
  • 武汉网站建设 熊掌号最佳磁力引擎吧
  • 教育平台网站开发品牌运营
  • 91人才网赣州招聘网安卓优化大师app下载安装
  • 合肥网页模板建站营业推广策划
  • 网站做301根目录在哪教育培训机构平台
  • 企业做网站域名需要自己申请吗深圳百度推广客服电话多少
  • 备案网站容易被收录公司网站建设费用多少
  • 4s店网站建设方案百度app下载最新版
  • 创建电子商务网站的7个步骤做网站推广需要多少钱
  • DW怎么做电商网站梅花seo 快速排名软件
  • 哪个网站可以查企业信息今日热搜榜官网
  • 做网站有必要注册商标吗河北百度seo关键词
  • 网站更换服务器教程下载app到手机上并安装
  • 学校网站建设都是谁做的网络舆情分析
  • 怎么把现有网站开发php昆明seo排名外包