擅长:python、mysql、java
<p>正如注释中提到的,问题是因为比较了字符串而不是首先转换为int,然后进行比较</p>
<p>您可以尝试的其他方法是:</p>
<pre><code>def romanToInt(s):
d = {'m': 1000, 'd': 500, 'c': 100, 'l': 50, 'x': 10, 'v': 5, 'i': 1}
n = [d[i] for i in s.lower() if i in d]
return sum([i if i>=n[min(j+1, len(n)-1)] else -i for j,i in enumerate(n)])
print(romanToInt('X')) # 10
print(romanToInt('V')) # 5
print(romanToInt('IV')) # 4
print(romanToInt('XV')) # 15
</code></pre>
<p>在我看来,两者都更像Python</p>