โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

ค่าตัวเลขโรมัน

แปลงเลขโรมันเป็นตัวเลขจำนวนเต็ม

แปลงเลขโรมันที่ถูกต้องให้เป็นค่าตัวเลขจำนวนเต็ม สัญลักษณ์ได้แก่ I=1, V=5, X=10, L=50, C=100, D=500, M=1000; หากมีสัญลักษณ์ที่มีค่าน้อยกว่าอยู่หน้าสัญลักษณ์ที่มีค่ามากกว่า ให้นำค่านั้นไปลบ (เช่น IV = 4, CM = 900)

ให้เขียนฟังก์ชัน roman_to_int(text)

อินพุต

text: เลขโรมันที่ถูกต้องหนึ่งค่า

เอาต์พุต

คืนค่าตัวเลขจำนวนเต็มที่สอดคล้องกับเลขโรมันนั้น

เงื่อนไข

1 ≤ value ≤ 3,999

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
text = "XIV"

ผลลัพธ์ที่คาดหวัง:
expected = 14
อินพุต:
std::string text = "XIV";

ผลลัพธ์ที่คาดหวัง:
long long expected = 14;
อินพุต:
string text = "XIV";

ผลลัพธ์ที่คาดหวัง:
long expected = 14;

คำอธิบาย

X = 10, IV = 4: 14

ตัวอย่างที่ 2
อินพุต:
text = "MCMXCIV"

ผลลัพธ์ที่คาดหวัง:
expected = 1994
อินพุต:
std::string text = "MCMXCIV";

ผลลัพธ์ที่คาดหวัง:
long long expected = 1994;
อินพุต:
string text = "MCMXCIV";

ผลลัพธ์ที่คาดหวัง:
long expected = 1994;

คำอธิบาย

M=1000, CM=900, XC=90, IV=4: 1994

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก