题解 | #字符串分隔#

字符串分隔

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方法

全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务