华为机试第四题,仍然考察字符串的拼接重组知识点,也不复杂,废话不多说,请看题~
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入例子:
abc 123456789
输出例子:
abc00000 12345678 90000000
python代码实现:
import sys lines=sys.stdin.readlines() result=[] for line in lines: line=line.strip() #先分析正好是长度正好为8的倍数的情况 if(len(line)%8==0): num=len(line)/8 #注意两个列表拼接 使用extend result.extend(line[i*8:(i+1)*8] for i in range(num)) else: #分析不能被8整除的情况 #又可以分为两种情况,一是长度不到8 二是长度>8 if (len(line)<8): #直接在Line后面补0 line=line+'0'*(8-len(line)) result.append(line) else: n=len(line)/8 result.extend(line[i*8:(i+1)*8] for i in range(n)) left=line[8*n:]+'0'*(8-len(line)%8) result.append(left) #将结果打印输出 for item in result: print item