本文最后更新于:2022年10月4日 下午
题目描述
(如果看不到的话就去力扣吧)
实现
其实自己并没有想到好的实现,索性就直接暴力遍历然后分情况讨论了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| class Solution { public int romanToInt(String s) { int result = 0; char tmp; for (int cursor = 0; cursor < s.length(); cursor++){ tmp = s.charAt(cursor); if (tmp == 'M'){ result += 1000; } else if(tmp == 'D'){ result += 500; } else if(tmp == 'C'){ if (cursor < s.length() - 1){ if(s.charAt(cursor + 1) == 'M'){ result += 900; cursor++; } else if(s.charAt(cursor + 1) == 'D'){ result += 400; cursor++; } else{ result += 100; } } else{ result += 100; } } else if(tmp == 'L'){ result += 50; } else if(tmp == 'X'){ if (cursor < s.length() - 1){ if(s.charAt(cursor + 1) == 'C'){ result += 90; cursor++; } else if(s.charAt(cursor + 1) == 'L'){ result += 40; cursor++; } else{ result += 10; } } else{ result += 10; } } else if(tmp == 'V'){ result += 5; } else { if (cursor < s.length() - 1){ if(s.charAt(cursor + 1) == 'X'){ result += 9; cursor++; } else if(s.charAt(cursor + 1) == 'V'){ result += 4; cursor++; } else{ result += 1; } } else{ result += 1; } } } return result; } }
|
太久没写了,写得太久了,写的挺急的,就想着怎么写出来其他都没管了,看上去挺笨重的(
我就没多想,转就转呗,那我就嗯遍历一遍字符串,特殊情况拿出来特殊讨论就好了。一开始是往前看的,发现不对劲,往前看结果不对,只好往后看顺便多加一条条件防止索引出界(好笨啊好笨啊好笨啊)
行吧,毕竟我现在水平感觉跟刚学编程的没什么差别,只能说慢慢来了(倒
希望本文章能够帮到您~