> 文章列表 > 华为机试-HJ4字符串分隔-python实现

华为机试-HJ4字符串分隔-python实现

华为机试-HJ4字符串分隔-python实现

描述:

华为机试-HJ4字符串分隔-python实现

分析

数据结构:不需要,直接输出就行
解题思路:
先找相同:不论是什么长度的字符串,都要按照长度为8打印。
——>也就是说,除了补零的,统一按照长度为8输出
再找不同:补0个数不同。
——>让ljust函数自己判断需要补多少个零。

参考代码

笨蛋(bushi)解法

while True:try:inputString = input()stringLength = len(inputString)len8mod = stringLength % 8len8div = stringLength // 8# 取余不等于0的情况(长度小于8,或者大于8但不是8的倍数),# 补零(补到原长度下一个8的倍数)if len8mod != 0:inputString = inputString.ljust(8 * (len8div + 1), "0")for i in range(len8div + 1):print(inputString[8 * i : 8 * (i + 1)])except:break

虽然能ac,但是这种解法时间和空间占用不是很理想

高级解法:

while True:try: s=input()            while len(s)>8:                print(s[:8])                s=s[8:]            print(s.ljust(8,"0")) #ljust自己判断需要补多少个零except:break

高级解法的时间占用为上一个解法的5分之一。

反思

对题目的思考不够,应该多看多对比。