Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

La Mã sang số nguyên trong Python


Chuyển số La Mã thành số nguyên. Bảng giá trị: I=1, V=5, X=10, L=50, C=100, D=500, M=1000. Quy tắc trừ: IV=4, IX=9, XL=40, XC=90, CD=400, CM=900. Chuyển đổi số 1-3999.

Giải pháp

Tạo dictionary bao gồm cả cặp trừ. Duyệt chuỗi: nếu 2 ký tự tiếp theo có trong dict → lấy giá trị, tăng i 2; else lấy 1 ký tự.

Ví dụ

Triển khai Python:

class Solution(object): 
    def romanToInt(self, s): 
        roman = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000,'IV':4,'IX':9,'XL':40,'XC':90,'CD':400,'CM':900} 
        i = 0 
        num = 0 
        while i < len(s): 
            if i+1<len(s) and s[i:i+2] in roman: 
                num+=roman[s[i:i+2]] 
                i+=2 
            else: 
                num+=roman[s[i]] 
                i+=1 
        return num 
ob1 = Solution() 
print(ob1.romanToInt("III")) 
print(ob1.romanToInt("CDXLIII"))

Đầu vào

"III" "CDXLIII"

Đầu ra

3 443