@No.HJ4 字符串分隔
- @problem description:
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。- @input description:
连续输入字符串(输入2次,每个字符串长度小于100)- @output description:
输出到长度为8的新字符串数组
var str1 = readline();
var str2 = readline();
var result = [];
function func(str){
if(str.split("").length >=8){
var arr1 = str.split("");
var more = arr1.splice(8);
result.push(arr1.join(""));
func(more.join(""));
}else if(str.split("").length != 0){
var arr = [0,0,0,0,0,0,0,0];
for(var i=0;i<str.length;i++){
arr.unshift(str.split("").reverse()[i]);
};
arr.length = 8;
result.push(arr.join(""));
};
};
func(str1);
func(str2);
for(var j=0;j<result.length;j++){
console.log(result[j]);
};
算法分析:
核心是func递归函数,接收一个字符串,返回分隔好的总数组。然后遍历输出即可。
func函数中:先判断数组长度:
数组长度大于8:
则把第九个之后的元素分割到新的数组more,more继续执行func函数,前八个元素则加入到result数组中;
数组长度不大于8(还需要判断一下是否为0,不然最后结果会多出一组00000000):
把字符串数组元素倒序遍历添加到[0,0,0,0,0,0,0,0]的开头,最后截掉多余的元素,继续添加到result数组。
Code_Zevin_J —— 2020-08-05 20:15:14