题解 | #字符串分隔#

字符串分隔

https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7

import re

def str_split(input_str):
    # 使用正则表达式找到所有8个字符长度的匹配项
    if len(input_str) >= 8:
       list_of_str = re.findall(r'.{8}', input_str)
    
    # 检查最后一个字符串的长度,如果不是8的倍数,补齐0
       if len(input_str) % 8 != 0:
          # 剩余字符的数量
          remaining_chars = len(input_str) % 8
        # 剩余字符的起始索引
          start_index = len(input_str) - remaining_chars
        # 将剩余的字符添加到列表中,并确保它们是8个字符长
          list_of_str.append(input_str[start_index:].ljust(8, "0"))
          list_of_str[-1] = list_of_str[-1].ljust(8, "0")
    # 使用换行符连接所有字符串
          return '\n'.join(list_of_str)
       elif len(input_str) % 8 == 0:
          list_of_str = re.findall(r'.{8}', input_str)
          return '\n'.join(list_of_str)
    else:
        return input_str.ljust(8,"0")

if __name__ == '__main__':
    input_str = str(input())
    assert len(input_str) <= 100
    res = str_split(input_str)
    # 打印结果,每个8个字符的字符串依次换行输出
    print(res)

调了一小时,思路是这样的,str长度分为大于等于8和小于8,第一种情况下,看他能不能取余数为零,若可以,将列表结果换行输出,若余数不为零,则先将可以取到的8位字符串放入列表中(re.findal(r'.{8}',input_str)),之后再从上次取完8位字符串的起始位开始取数,并补齐0,用ljust方法

全部评论

相关推荐

05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务