12 Integer to Roman 
 有可能不注意的結果: 
 class  Solution  {public :
int  romanToInt(
string  s) {
int  res=
0 ;
int  lastValue=
0 ;
int  digit;
for (
int  i=s.size()-
1 ;i>=
0 ;i--){
switch (s[i]){
case  'I' : digit=
1 ; 
break ;
case  'V' : digit=
5 ; 
break ;
case  'X' : digit=
10 ; 
break ;
case  'L' : digit=
50 ; 
break ;
case  'C' : digit=
100 ; 
break ;
case  'D' : digit=
500 ; 
break ;
case  'M' : digit=
1000 ; 
break ;}if(digit>=lastValue){res+=digit;lastValue=digit;}
else  res-=digit;}
return  res;}}; 
羅馬數字是阿拉伯數字傳入之前使用的一種數碼。羅馬數字采用七個羅馬字母作數字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。記數的方法: 
 string intToRoman(int num){string table[4][10] =  {{"" , "I" , "II" , "III" , "IV" , "V" , "VI" , "VII" , "VIII" , "IX" },{"" , "X" , "XX" , "XXX" , "XL" , "L" , "LX" , "LXX" , "LXXX" , "XC" },{"" , "C" , "CC" , "CCC" , "CD" , "D" , "DC" , "DCC" , "DCCC" , "CM" },{"" , "M" , "MM" , "MMM" }};string  result ;int  count  = 0;while (num  > 0){int  temp  = num  % 10;result  = table [count ][temp ] + result ;num  /= 10;count ++;}return  result ;
}  The basic idea is really simple: replace every digit in num by roman numerals. 
 M = [
"" , 
"M" , 
"MM" , 
"MMM" ];
C  = [
"" , 
"C" , 
"CC" , 
"CCC" , 
"CD" , 
"D" , 
"DC" , 
"DCC" , 
"DCCC" , 
"CM" ];
X = [
"" , 
"X" , 
"XX" , 
"XXX" , 
"XL" , 
"L" , 
"LX" , 
"LXX" , 
"LXXX" , 
"XC" ];
I  = [
"" , 
"I" , 
"II" , 
"III" , 
"IV" , 
"V" , 
"VI" , 
"VII" , 
"VIII" , 
"IX" ];
return M[num/
1000 ] + 
C [(num%
1000 )/
100 ] + X[(num%
100 )/
10 ] + 
I [num%
10 ]; 
Simple C solution 16ms 
 ljbschen 
 void  helper (
char * ans, 
int * curp, 
int  step, 
int  one, 
int  five, 
int  ten) {
char  ch[]={
'I' ,
'V' ,
'X' ,
'L' ,
'C' ,
'D' ,
'M' };
int  offset=
0 ;
if  (step==
1000 ) offset=
6 ;
else  if  (step==
100 ) offset=
4 ;
else  if  (step==
10 ) offset=
2 ;
else  offset=
0 ;
if  (one==-
1 ) ans[(*curp)++] = ch[offset];
if  (ten==
1 )  ans[(*curp)++] = ch[offset+
2 ];
if  (five==
1 ) ans[(*curp)++] = ch[offset+
1 ];
while  (one-->
0 ) ans[(*curp)++] = ch[offset];
}
char * intToRoman(
int  num) {
char  *ans = 
malloc (
sizeof (
char )*
16 );
int  i=
0 , step=
1000 , digit=
0 ;
int  one=
0 ,five=
0 ,ten=
0 ;
int  curp=
0 ;
while  (num>
0 ) {digit=num/step;
if  (digit==
9 ) {one=-
1 ;five=
0 ;ten=
1 ;}
else  if  (digit>=
5 ) {one=digit-
5 ;five=
1 ;ten=
0 ;}
else  if  (digit==
4 ) {one=-
1 ;five=
1 ;ten=
0 ;}
else  if  (digit==
0 ) {one=
0 ;five=
0 ;ten=
0 ;}
else  {one=digit;five=
0 ;ten=
0 ;}helper(ans,&curp,step,one,five,ten);num-=digit*step;step/=
10 ;}ans[curp]=
'\0' ;
return  ans;
} 
《架構大數據—-大數據技術及算法解析》
 緒論 
 1.1大數據的概念 
 1.2 大數據的行業價值 
 
                            總結 
                            
                                以上是生活随笔 為你收集整理的leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换 的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。