發表文章

目前顯示的是 2021的文章

數值轉大寫

兩年前有陣子上Leetcode試玩了一下。 其中有一題 Integer to Roman , 沒想到兩年多了還是維持在最快(3ms, 再快真的不容易) 程式碼如下: class Solution { public String intToRoman ( int num ) { int [ ] nums = new int [ ] { 1000 , 900 , 500 , 400 , 100 , 90 , 50 , 40 , 10 , 9 , 5 , 4 } ; String [ ] rns = new String [ ] { "M" , "CM" , "D" , "CD" , "C" , "XC" , "L" , "XL" , "X" , "IX" , "V" , "IV" } ; StringBuilder sb = new StringBuilder ( ) ; int pos = 0 ; while ( num > 3 && pos < rns. length ) { int d = num / nums [ pos ] ; int r = num % nums [ pos ] ; if ( d > 0 ) { for ( int i = 0 ; i < d ; i ++ ) { sb. append ( rns [ pos ] ) ; } } else { pos ++; } num = r ; } while