0
点赞
收藏
分享

微信扫一扫

笔试算法《字符串分割》


题目描述

  • •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
    •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
  • 输入描述:
    连续输入字符串(输入多次,每个字符串长度小于100)
  • 输出描述:
    输出到长度为8的新字符串数组
  • 示例1
  • 输入
    abc
    123456789
  • 输出
    abc00000
    12345678
    90000000

代码

  • 我的实现
    我的牛客网速度为8ms,牛客网最高6毫秒,但是我把牛客网最快的几个解法看了一下,并没有我的快,而且通过我当时在牛客网运行,他们的解法也都超过了我的速度。可能跟网速,或者刷题有关系
    看我的:

package org.lht.boot.lang.suanfa;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* @author haitao.li
* @description: 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
* •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
* @date 2021/4/2 14:44
*/
public class Huawei字符串分割 {


public static void main(String[] args) throws IOException {
String[] zero = {"", "0", "00", "000", "0000", "00000", "000000", "0000000"};
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while ((str = bufferedReader.readLine()) != null) {
int i = 0;
String trim = str.trim();
if (trim.length() >= 8) {
i = trim.length() / 8;
for (int j = 0; j < i; j++) {
System.out.println(trim.substring(j * 8, (j + 1) * 8));
}
}
if (trim.length()%8>0) {
String substring = trim.substring(i * 8);
System.out.println(substring + zero[8 - substring.length()]);
}

}


}
}

  • 其他实现地址
  • ​​https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7?tpId=37&tqId=21224&rp=1&ru=%2Fta%2Fhuawei%2F&qru=%2Fta%2Fhuawei%2Fquestion-ranking&tab=answerKey​​

笔试算法《字符串分割》_牛客网


举报

相关推荐

0 条评论