https://leetcode-cn.com/problems/roman-to-integer/
    罗马数字就是比如 IV, V左边的I比它小,那么V左边有且只有一位数字比它小,
    那么我们可以从左到右遍历罗马数字, 若当前数字比右边的小,则减去该数,否则加

    1. public static int romanToInt(String s) {
    2. int[] nums = new int[s.length()];
    3. for (int i = 0; i < s.length(); i++) {
    4. switch (s.charAt(i)) {
    5. case 'M':
    6. nums[i] = 1000;
    7. break;
    8. case 'D':
    9. nums[i] = 500;
    10. break;
    11. case 'C':
    12. nums[i] = 100;
    13. break;
    14. case 'L':
    15. nums[i] = 50;
    16. break;
    17. case 'X':
    18. nums[i] = 10;
    19. break;
    20. case 'V':
    21. nums[i] = 5;
    22. break;
    23. case 'I':
    24. nums[i] = 1;
    25. break;
    26. }
    27. }
    28. int sum = 0;
    29. for (int i = 0; i < nums.length - 1; i++) {
    30. if (nums[i] < nums[i + 1]) {
    31. sum -= nums[i];
    32. } else {
    33. sum += nums[i];
    34. }
    35. }
    36. return sum + nums[s.length() - 1];
    37. }