Python实现字符串分隔(华为机试)

题目描述

连续输入两组字符串,请按长度为8拆分每个字符串后输出新的字符数组。长度不是8整数倍的字符数组请在后面补0。

示例输入、输出

输入:

abc
123456789

输出:

abc00000
12345678
90000000

题目分析

输入的合法字符串无非就两种类型:1. 字符串长度小于或等于8; 2. 字符串长度大于8。

对于第一种情况,只需要在字符串后面补0,直到长度为8为止。

对于第二种情况,将字符串按长度8拆分,即每8个连续字符为一组,记录到一个列表中。如果字符串能被8整除,那么意味着所有拆分后的字符串都满足题目要求。但如果字符串不能被8整除,那么最后一次拆分的字符串的长度将小于8,这时在继续补0,直到最后一个子字符串长度满足8为止即可。最后将列表输出,每一行输出一个子字符串。

测试用例

1. 输入的字符串长度大于0却小于8

2. 输入的字符串为空串

3. 输入的字符串长度大于8

4. 输入的字符串长度等于8的倍数

代码

def split_string(string):
    string_list = []

    if len(string) <= 8:
        string_list.append(string + '0' * (8 - len(string)))
        return string_list

    while len(string) > 8:
        temp = string[0:8]
        string = string[8:]
        string_list.append(temp)

    if len(string) > 0:
        string_list.append(string + '0' * (8 - len(string)))
        return string_list

#main
s1 = input()
s2 = input()

s1_list = split_string(s1)
s2_list = split_string(s2)

for element in s1_list:
    print(element)
for element in s2_list:
    print(element)

传送门

1. input()函数

https://blog.csdn.net/TCatTime/article/details/82556033

2. len()函数:

https://blog.csdn.net/TCatTime/article/details/82469297

3. append()函数

https://blog.csdn.net/TCatTime/article/details/82555430

猜你喜欢

转载自blog.csdn.net/TCatTime/article/details/82556703