【牛客-华为机试】HJ4 字符串分隔

34 阅读1分钟

题目 HJ4 字符串分隔

  • 描述

    输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

    长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

    • 输入描述: 连续输入字符串(每个字符串长度小于等于100)

    • 输出描述: 依次输出所有分割后的长度为8的新字符串

  • 示例1

    输入:abc
    输出:abc00000
    

解题办法

  • 解析

    • 审题:需要截取字符串、少的补0、输出最终结果
    • trim()去除首尾空格
    • line.length / 8代表总字符串以8个为长度分配,再* 8 代表以8长度单位为准应该为多少的总目标长度
    • Math.ceil(x)分配字符串8位,四舍五入
    • padEnd(targetLength)补充0,括号内的内容即上面第三点的部分表示要补充的目标长度
    • for循环遍历,i每次加8个为一个轮回
    • 输出的是截取后加上0的字符串了,用slice表明从第i个,往后选择8
  • 代码展示

    const rl = require("readline").createInterface({ input: process.stdin });
    var iter = rl[Symbol.asyncIterator]();
    const readline = async () => (await iter.next()).value;
    
    void async function () {
      // 读取输入并处理
      while (line = await readline()) {
        // 去除空格并补充 0
        let str = line.trim().padEnd(Math.ceil(line.length / 8) * 8, '0');
        // 截取长度为 8 的字符串并输出
        for (let i = 0; i < str.length; i += 8) {
          console.log(str.slice(i, i + 8));
        }
      }
    }()