python-060Đọc toàn bộ đề miễn phí

Chuyển đổi số nguyên và số La Mã hai chiều

Viết hàm roman_numeral_converter(value: int | str) -> str | int:

PythonTrung bình25 phút

Tiến độ của tôi ở bài này

Điểm được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

stringsparsingalgorithmsvalidation

Kiến thức tiên quyết: strings, dictionaries.

Nội dung đề bài

Mục tiêu kiến thức

  • Nắm vững cấu trúc số La Mã chuẩn và quy tắc trừ (Subtractive Notation: IV, IX, XL, XC, CD, CM).
  • Xử lý nạp chồng logic dựa trên kiểu dữ liệu của đối số (isinstance).
  • Bắt lỗi và thẩm định cú pháp chuỗi La Mã không hợp lệ.

Mô tả bài toán

Viết hàm roman_numeral_converter(value: int | str) -> str | int:

  • Nếu value là int:
  • Chuyển đổi sang chuỗi số La Mã chuẩn.
  • Giá trị hợp lệ: 1 ≤ value ≤ 3999. Nếu nằm ngoài khoảng này, raise ValueError("So nguyen phai tu 1 den 3999").
  • Nếu value là str:
  • Chuyển đổi chuỗi La Mã sang số nguyên int.
  • Chuỗi phải hợp lệ: chỉ gồm các ký tự I, V, X, L, C, D, M.
  • Để đảm bảo tính chuẩn tắc, giá trị nguyên N sau khi dịch ra phải chuyển đổi ngược lại thành đúng chuỗi ban đầu int_to_roman(N) == value. Nếu không trùng khớp (ví dụ "IIII" hay "VX"), raise ValueError("Chuoi La Ma khong dung cu phap").

Input

  • Tham số: value: int | str.

Output

  • Trả về: str (nếu đầu vào là int) hoặc int (nếu đầu vào là str).
  • Ngoại lệ: ValueError khi đầu vào vi phạm quy tắc.

Ràng buộc

  • Thời gian chạy tối đa: 1000ms.
  • Giới hạn bộ nhớ: 256MB.
  • Dữ liệu đầu vào tuân thủ đúng kiểu dữ liệu và miền giá trị được mô tả.

Ví dụ 1

Input

roman_numeral_converter(1994)

Output

'MCMXCIV'

Giải thích

Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.

Ví dụ 2

Input

roman_numeral_converter('MCMXCIV')

Output

1994

Giải thích

Hàm được gọi với bộ tham số thứ hai và trả về kết quả tương ứng theo thiết kế.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.