算法题栏目

该博客介绍了一个将罗马数字字符串转换为整数的Python实现。通过创建一个包含所有罗马数字对应整数值的字典,遍历输入字符串并根据罗马数字规则计算结果。算法考虑了数字前后的关系,如'IV'表示4,'IX'表示9等。最后,通过替换和累加计算得出最终的整数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将罗马数字转换成整数

将由罗马数字组成的字符串,计算出结果
思路:将有可能出现的所有组合,写入到字典,通过判断输入字符串的当前位和下一位是否在字典中,判断是否存在前一位数字小于后一位
def luoma(str):

    dict = {'I': 1, 'IV': 4, 'V': 5, 'IX': 9, 'X': 10, 'XL': 40, 'L': 50, 'XC': 90, 'C': 100, 'CD': 400, 'D': 500, 'CM': 900, 'M': 1000}
    result = 0
    for i in range(len(str)-1):
        if str[i: i+2] in dict:
            result += dict[str[i: i+2]]
            str = str.replace(str[i: i+2], ' ')

    s = str.replace(' ', '')
    print(s)
    for j in s:
        result += dict[j]

    print(result)


while 1:
    if __name__ == '__main__':
        str = input("请输入罗马字符串:例如('I', 'V', 'X', 'L', 'C', 'D', 'M'):")
        luoma(str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值