LeetCode(Python3)[Roman to Integer]

本日のLeetcodeは、ローマ数字を現在使われている数値に変換をしようという問題です。

class Solution:
    def romanToInt(self, s: str) -> int:
        symbol={"I":1,"V":5, "X":10, "L":50,"C":100, "D":500, "M":1000 }
        ans=0
        for i in range(len(s)-1):
            if symbol[s[i]]<symbol[s[i+1]]:
                ans-=symbol[s[i]]
            else :
                ans+=symbol[s[i]]
        ans+=symbol[s[-1]]
        return ans

ポイントは、3つあります。
1つ目は、辞書の使い方です。symbolで辞書を使っています。辞書は、キーと値をセットにして、まとめることが出来ます。メニュー表のようなイメージですね。辞書作成の際は{}で、値の使用をする場合は[]を使いましょう。
2つ目は、strには、インデックス番号があることです。文字列なので、順番などなさそうですが、実際あり、今回のコードでは、s[i]と指定して使っています。インデックス番号自体は0~になります。
3つ目は、strのインデックス番号の-1は、最後の文字を示すことです。s[-1]で最後の文字を表すことができます。

辞書の使い方をすっかり忘れていて、他のサイトも参考にして解答を作成しました。他に何か解答や追記などあれば是非コメントで教えて頂けると助かります。

この記事が気に入ったらサポートをしてみませんか?