力扣簡13 羅馬數字轉整數
阿新 • • 發佈:2021-09-22
主要的問題是遺忘了字串按位取出的函式 charAt()
最開始在複製不同條件時丟了右括號 以後一定要注意
從看題到解決共28分鐘 自己也就是字串轉陣列 挨個判斷求和 最終把特殊情況減去
寫出的程式碼如下:
classSolution{ publicintromanToInt(Strings){ char[]n=newchar[s.length()]; intnum=0; for(inti=0;i<s.length();i++){ n[i]=s.charAt(i); if(n[i]=='I'){ num=num+1; } elseif(n[i]=='V'){ num=num+5; } elseif(n[i]=='X'){ num=num+10; } elseif(n[i]=='L'){ num=num+50; } elseif(n[i]=='C'){ num=num+100; } elseif(n[i]=='D'){ num=num+500; } elseif(n[i]=='M'){ num=num+1000; } } for(inti=0;i<s.length()-1;i++){ if(n[i]=='I') { if(n[i+1]=='V'||n[i+1]=='X') { num-=2; } } elseif(n[i]=='X') { if(n[i+1]=='L'||n[i+1]=='C') { num-=20; } } elseif(n[i]=='C') { if(n[i+1]=='D'||n[i+1]=='M') { num-=200; } } } returnnum; } } 答案用了map 後續學到map再回頭看