题解 | #字符串分隔#

字符串分隔

https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7

1.笨方法

const arr = readline().split(""),
      len = arr.length;
let res = "";
for(let i = 0; i < len; i ++){
    if(res.length < 8){
        res += arr[i];
    }else{
        console.log(res);
        res = arr[i];  //这里不能使res置为初始空字符串,否则会丢失9n位的字符
    }
}
if(res.length < 8){
    for(let i = res.length; i < 8; i ++){
        res += 0;
    }
}
console.log(res);

遍历输入,每8位字符将输入中的字符存进res字符串并输出。为了补齐最后未满8位的res字符串,结束遍历后判断res字符串的长度是否未满8位,若不满8位则补0。

2.取子字符串

var lines = ''
while(line = readline()){
    var str = line +'00000000';
     for(let i = 8; i < str.length; i += 8) {
          console.log(str.substring(i - 8, i));
     }
}

翻看评论区大佬留的代码,比我自己写的精简的多。

其为了避免提取到不满8位的子字符串,一开始就给原字符串补了8个0。且为了避免提取到多余的0字符,for循环的i从8开始,每个循环i+8,字符串提取i-8到i位。

我又按照这个逻辑按照自己的习惯写了一遍。

const line = readline(),
      str = line +'00000000';
let len = str.length;
for(let i = 8; i < len; i += 8) {
    console.log(str.substring(i - 8, i));
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务