题解 | #牛牛和罗马数字智力游戏#
牛牛和罗马数字智力游戏
https://www.nowcoder.com/practice/7f4bd3b2d7d34f5c87d84120d9782c1d
- 题目考察的知识点 : 哈希表运用
- 题目解答方法的文字分析:
- 使用哈希表建立罗马数字字符和对应的数值之间的映射关系。
- 初始化一个空字符串res来保存最终的罗马数字结果。
- 按照数值从大到小的顺序遍历哈希表中的键。
- 对每个键值,计算num可以被其整除的次数,然后将对应的罗马字符乘以该次数,拼接到res中。
- 用num除以键值的余数更新num,进入下一轮循环。
- 循环结束后,判断res的长度是否大于等于限制长度limit,如果是则反转res。
- 最终返回res作为结果。
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型 # @param limit int整型 # @return string字符串 # class Solution: def integerToRomanWithReverse(self, num: int, limit: int) -> str: # 使用哈希表,按照从大到小顺序排列 hashmap = {1000:'M', 900:'CM', 500:'D', 400:'CD', 100:'C', 90:'XC', 50:'L', 40:'XL', 10:'X', 9:'IX', 5:'V', 4:'IV', 1:'I'} res = '' for key in hashmap: if num // key != 0: count = num // key res += hashmap[key] * count num %= key if len(res) >= limit: res = res[::-1] return res
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路