Leetcode-013-罗马数字转整数
Posted huangzengrui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode-013-罗马数字转整数相关的知识,希望对你有一定的参考价值。
双指针问题,当前的数小于后一位,就减去它的值,否则就加上它的值。
class Solution { public int romanToInt(String s) { Map<Character, Integer> demo = new HashMap<>(); demo.put(‘I‘, 1); demo.put(‘V‘, 5); demo.put(‘X‘, 10); demo.put(‘L‘, 50); demo.put(‘C‘, 100); demo.put(‘D‘, 500); demo.put(‘M‘, 1000); int result = 0; for(int i=0;i<s.length()-1;i++){ if(demo.get(s.charAt(i))<demo.get(s.charAt(i+1))){ result -= demo.get(s.charAt(i)); }else{ result += demo.get(s.charAt(i)); } } result += demo.get(s.charAt(s.length()-1)); return result; } }
class Solution: def romanToInt(self, s: str) -> int: demo = {‘I‘:1, ‘V‘:5, ‘X‘:10, ‘L‘:50, ‘C‘:100, ‘D‘:500, ‘M‘:1000} result = 0 for i in range(len(s)-1): if demo[s[i]] < demo[s[i+1]]: result -= demo[s[i]] else: result += demo[s[i]] result += demo[s[len(s)-1]] return result
以上是关于Leetcode-013-罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章
2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段