题目描述
- •连续输入字符串,请按长度为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