zoukankan      html  css  js  c++  java
  • 算法题之端口(2017百度实习笔试题)

    端口

    时间限制:C/C++语言 1000MS;其他语言 3000MS
    内存限制:C/C++语言 65536KB;其他语言 589824KB

    题目描述:
    为了节省信息传递的数据量,A公司内部经常用一种简单的压缩方法来处理端口地址。举例:
    [001011:110011:101101:000000]→[1011:110011:101101:](压缩)
    [1011:1101::]→[001011:001101:000000:000000](解压)
    那么,为何不写个程序来自动完成压缩和解压呢?

    输入
    输入第一行一个整数a,a为0时表示任务为压缩,a为1时表示任务为解压。
    接下来第二行一字符串,表示输入程序的端口信息,保证端口信息只有“0”,“1”,“:”三种字符。

    输出
    输出一行字符串,表示压缩或解压后得到的端口信息。

    样例输入
    0
    001011:110011:101101:000000

    样例输出
    1011:110011:101101:

    Hint
    Input Sample 2
    1
    1011::1101:
    Output Sample 2
    001011:000000:001101:000000

    我的答案(时间紧张,写的复杂。。。)

    import com.sun.deploy.util.StringUtils;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int isComprise = scanner.nextInt();
            String line = scanner.next();
            /*int isComprise = 1;
            String line = "1011:110011:101101:";*/
    
            String result;
            if (isComprise == 0) {
                // 001011:110011:101101:000000
                // 1011:110011:101101:
                String[] group = line.split(":");
                for (int j=0; j<group.length; j++) {
                    if (group[j].contains("1")) group[j] = group[j].substring(group[j].indexOf("1"));
                    else group[j] = " ";
                }
                result = StringUtils.join(Arrays.asList(group), ":").replace(" ", "");
            } else {
                // 1011:110011:101101:
                // 001011:110011:101101:000000
                String[] group = line.split(":", -1);
                for (int j=0; j<group.length; j++) {
                    StringBuilder sb = new StringBuilder();
                    for (int i=0; i<6-group[j].length(); i++)
                        sb.append("0");
                    group[j] = sb.append(group[j]).toString();
                }
                result = StringUtils.join(Arrays.asList(group), ":");
            }
            System.out.println(result);
        }
    }
    

      

  • 相关阅读:
    HTML5 文件上传
    Vue-Router模式、钩子
    网络基础协议随笔
    Vue-Router基础使用
    vue中mixin的一点理解
    纯css3跑马灯demo
    Charles使用笔记
    提个醒。。。
    本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
    easyUI datagrid 清空
  • 原文地址:https://www.cnblogs.com/shixiangwan/p/6777613.html
Copyright © 2011-2022 走看看