leetcode
做這道題首先查看了一下羅馬數(shù)字的表示方式,相比于阿拉伯?dāng)?shù)字真的麻煩!
題目中也是將輸入范圍限定到3999.
我第一想到的就是用switch語(yǔ)句。
switch(T x ){
case 1:
語(yǔ)句;break;
case 2:
....
default:
break;
}
代碼如下:
class Solution {public: string intToRoman(int num) { string ret; int x1=num%10; switch(x1){ case 1: ret='I'; break; case 2: ret="II"; break; case 3: ret="III"; break; case 4: ret="IV"; break; case 5: ret='V'; break; case 6: ret="VI"; break; case 7: ret="VII"; break; case 8: ret="VIII"; break; case 9: ret="IX"; break; default: break; } if(num>=10){ int x2=(num/10)%10; switch(x2){ case 1: ret='X'+ret; break; case 2: ret="XX"+ret; break; case 3: ret="XXX"+ret; break; case 4: ret="XL"+ret; break; case 5: ret='L'+ret; break; case 6: ret="LX"+ret; break; case 7: ret="LXX"+ret; break; case 8: ret="LXXX"+ret; break; case 9: ret="XC"+ret; break; default: break; } } else return ret; if(num>=100){ int x3=(num/100)%10; switch(x3){ case 1: ret='C'+ret; break; case 2: ret="CC"+ret; break; case 3: ret="CCC"+ret; break; case 4: ret="CD"+ret; break; case 5: ret='D'+ret; break; case 6: ret="DC"+ret; break; case 7: ret="DCC"+ret; break; case 8: ret="DCCC"+ret; break; case 9: ret="CM"+ret; break; default: break; } } else return ret; if(num>=1000){ int x4=(num/1000)%10; switch(x4){ case 1: ret='M'+ret; break; case 2: ret="MM"+ret; break; case 3: ret="MMM"+ret; break; default: break; } } else return ret; return ret; }};后面看到別人比較簡(jiǎn)潔的代碼如下:class Solution {public: const static string THOUS[]; const static string HUNDS[]; const static string TENS[]; const static string ONES[]; string intToRoman(int num) { string result; result += THOUS[(int)(num/1000)%10]; result += HUNDS[(int)(num/100)%10]; result += TENS[(int)(num/10)%10]; result += ONES[num%10]; return result; }};const string Solution::THOUS[] = {"","M","MM","MMM"};const string Solution::HUNDS[] = {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};const string Solution::TENS[] = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};const string Solution::ONES[] = {"","I","II","III","IV","V","VI","VII","VIII","IX"};這個(gè)代碼采用數(shù)組的方法。感覺我的好蠢。。。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注