zoukankan      html  css  js  c++  java
  • python 练习题-字符串区分字符和数字(连续的字符或数字当做一个整数)

    题目:

    1 字符串区分字符和数字(连续的字符或数字当做一个整数)
    2 例如:
    3 "a11hh1soiu666"
    4 拆分结果:
    5 a 11 hh 1 soiu 666
    6 
    7 "a3bbb4315j43"
    8 拆分结果:
    9 a 3 bbb 4315 j 43

    思路:

    1 使用 str.isdigit() 判断是否是数字,
    2 
    3 如果是,继续判断上一个是否为数字,
    4 
    5 是则将该数字和之前的组合
    6 
    7 不是key为之前的字符,value是该数字

    代码如下:

     1 # @Author  :whyCai
     2 # @Time    :2021/2/17 14:15
     3 
     4 class Solution:
     5     def returnStr(self, s) -> str:
     6         numDict = {} #最终结果
     7         num = 0 #取数值的起始值
     8         for i in range(len(s)):
     9             #判断是否是数字
    10             if s[i].isdigit() :
    11                 # 如果第一个是数字,默认key 是 '0',value是该数字
    12                 if i == 0:
    13                     numDict['0'] = s[i]
    14                 #判断上一个是否是数字,如果是,将上一个值 + 该数字
    15                 if s[i-1].isdigit() :
    16                     numDict[list(numDict)[-1]] =  numDict[list(numDict)[-1]] + s[i]
    17                 # 如果上一个不是数字,key为之前的字符,value是该数字
    18                 else:
    19                     numDict[s[num:i]] = s[i]
    20                 num = i + 1
    21         return numDict
    22 
    23 print (Solution().returnStr('a3bbb4315j43'))

    结果如下:

  • 相关阅读:
    初入博客
    winsocket入门学习
    理解音视频 PTS 和 DTS
    理解音视频 PTS 和 DTS
    FFMPEG学习----使用SDL构建音频播放器
    FFmpeg被声明为已否决的解决方案
    FFMPEG结构体分析:AVCodecParameters
    FFMPEG学习----使用SDL播放PCM数据
    如何提取CSDN博客正文内容
    遍历CSDN博客
  • 原文地址:https://www.cnblogs.com/whycai/p/14411674.html
Copyright © 2011-2022 走看看