Подход к решению вопроса leetcode 13 — Roman to Integer

  1. В этом вопросе может быть два условия: во-первых, если это обычное число, такое как «III», «XX» или «V», мы просто продолжаем добавлять соответствующее целое число этого символа.
  2. или могут быть такие символы, как «IV» (4) или «XLIV» (44). В таких символах мы можем видеть, что если мы обычно добавим все символы, они станут такими:

I + V = 6 (но на самом деле 4) или X+L+I+V = 10+50+1+5 = 66 (но на самом деле 44)

в этих примерах мы видим, что если предыдущий символ меньше, чем его следующий символ, то мы не можем просто добавить их как обычно, вместо этого мы должны сделать так:

I + V = 6 , мы можем сделать (текущее значение — 2 * предыдущее значение), чтобы оно стало

6–2*1 = 4 (что правильно) то же, что X+L = 60, но (60–2*10) равно 50, что правильно.

3. Таким образом, мы будем перебирать строку и продолжать добавлять значение к итогу и возвращать итог в конце.

Код: