【LeetCode】罗马数字转整数

一时失言乱红尘 2021-11-04 16:08 524阅读 0赞

Java code

  1. class Solution {
  2. public int romanToInt(String s) {
  3. int sum = 0;
  4. char[] c = s.toCharArray();
  5. for(int i = 0; i < c.length; i++) {
  6. if(c[i] == 'I') {
  7. if(i != (c.length - 1) && c[i + 1] == 'V') {
  8. sum += 4;
  9. i++;
  10. continue;
  11. }
  12. if(i != (c.length - 1) && c[i + 1] == 'X') {
  13. sum += 9;
  14. i++;
  15. continue;
  16. }
  17. sum += 1;
  18. }
  19. if(c[i] == 'V') {
  20. sum += 5;
  21. }
  22. if(c[i] == 'X') {
  23. if(i != (c.length - 1) && c[i + 1] == 'L') {
  24. sum += 40;
  25. i++;
  26. continue;
  27. }
  28. if(i != (c.length - 1) && c[i + 1] == 'C') {
  29. sum += 90;
  30. i++;
  31. continue;
  32. }
  33. sum += 10;
  34. }
  35. if(c[i] == 'L') {
  36. sum += 50;
  37. }
  38. if(c[i] == 'C') {
  39. if(i != (c.length - 1) && c[i + 1] == 'D') {
  40. sum += 400;
  41. i++;
  42. continue;
  43. }
  44. if(i != (c.length - 1) && c[i + 1] == 'M') {
  45. sum += 900;
  46. i++;
  47. continue;
  48. }
  49. sum += 100;
  50. }
  51. if(c[i] == 'D') {
  52. sum += 500;
  53. }
  54. if(c[i] == 'M') {
  55. sum += 1000;
  56. }
  57. }
  58. return sum;
  59. }
  60. }

提交记录

提交记录

发表评论

表情:
评论列表 (有 0 条评论,524人围观)

还没有评论,来说两句吧...

相关阅读