华为机试(4.字符串分隔)
问题:
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc
123456789
输出
abc00000
12345678
90000000
解决:
思想:
- 对于长度小于8的字符串,加上n个0,再加入到结果数组中
- 长度等于8的直接保存到结果数组中
- 对于长度大于8的,先按照8位进行分割,然后分组存入结果数组中
python代码:
import sys
for line in sys.stdin:
line = line.strip()
line_result=[]
if(len(line)<8):
n=8-len(line)
line_tmp=line+n*"0"
# print(line_tmp)
line_result.append(line_tmp)
elif(len(line)==8):
line_result.append(line)
else:
l=len(line)
d=l//8
r=l%8
for i in range(d):
line_tmp=line[0+i*8:8+i*8]
# print(line_tmp)
line_result.append(line_tmp)
if(r!=0):
n = 8 - len(line[-r:])
# print(n)
# print(str([0]*n))
line_tmp=line[-r:]+n*"0"
line_result.append(line_tmp)
# print(line_result)
for x in line_result:
print(x)