栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python刷题:表示数字

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python刷题:表示数字

描述

解答
s1 = input()

'''
数字的位置有6种情况
情况0:开始位,例中的2和9是这种情况,判断方法:第1个元素必然属于情况0,
情况1:中间位,例中的3是这种情况
情况2:终止位,例中的4和0是这种情况
情况3:单独数字,例中的3是这种情况
情况4:第一位整数,必然要在之前插入
情况5:最后一位整数。必然要在之后插入
使用insert插入"*"时,不同的情况,插入的索引不同
情况0:插入索引和数字索引一样
情况1:不插入
情况2:插入索引再原数字索引上+1
情况3:需要插入两次,第一次插入原数字索引,第二次插入原数字索引+1
情况4:插入索引和数字索引一样
情况5:插入索引再原数字索引上+1
插入:为保证插入后不影响索引位置,需要先去重,然后从大索引到小索引的顺序插入
'''

# 先或取整数的索引
number_index = []
str_list = []
for index, value in enumerate(s1):
    str_list.append(value)
    if value.isdigit():
        number_index.append(index)
# 判断每个整数分别属于哪种情况

insert_index = []
if len(number_index) > 0:
    # 情况4,第1个整数
    insert_index.append(number_index[0])
    # 情况5,最后1个整数
    insert_index.append(number_index[-1]+1)

    for i in range(1, len(number_index) - 1):
        # 情况0:1、第一个元素。2、满足number_index[i] - number_index[i - 1] != 1 and number_index[i + 1] - number_index[i] == 1
        if number_index[i] - number_index[i - 1] != 1 and number_index[i + 1] - number_index[i] == 1:
            insert_index.append(number_index[i])
        # 情况1:满足number_index[i] - number_index[i - 1] == 1 and number_index[i + 1] - number_index[i] = 1
        if number_index[i] - number_index[i - 1] == 1 and number_index[i + 1] - number_index[i] == 1:
            pass
        # 情况2:满足number_index[i] - number_index[i - 1] == 1 and number_index[i + 1] - number_index[i] != 1
        if number_index[i] - number_index[i - 1] == 1 and number_index[i + 1] - number_index[i] != 1:
            # 注意,情况2的插入索引要在原基础上+1
            insert_index.append(number_index[i] + 1)
        # 情况3:满足number_index[i] - number_index[i - 1] != 1 and number_index[i + 1] - number_index[i] != 1
        if number_index[i] - number_index[i - 1] != 1 and number_index[i + 1] - number_index[i] != 1:
            # 注意,情况3有两个插入索引,一个是原来索引,一个是原来索引+1
            insert_index.append(number_index[i])  # 原来索引
            insert_index.append(number_index[i] + 1)  # 原来索引+1
    # 情况3还有一种最后一位数字和第一位的情况,需要单独考虑:
    for i in range(-2, -1):  # 注意这里的range范围
        if number_index[i + 1] - number_index[i] != 1:
            insert_index.append(number_index[i + 1])  # 原来索引
            insert_index.append(number_index[i + 1] + 1)  # 原来索引+1
    for i in range(1):
        if number_index[i + 1] - number_index[i] != 1:
            insert_index.append(number_index[i])  # 原来索引
            insert_index.append(number_index[i] + 1)  # 原来索引

    # 去重然后排序,要按照从后到前的顺序排序
    insert_index = list(set(insert_index))
    insert_index.sort(reverse=True)
    # print(insert_index)
    for i in insert_index:
        str_list.insert(i, "*")
print("".join(str_list))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号