ローマ数字と交換可能な数字のleetcode一つのタイプ

      私は兄が言ったのか分からない:文字列に関するご質問は、ポインタまたはハッシュを解決することができます。

      デジタルへのローマ数字:

      私たちは考えた:私たちは法律を遵守することができます:通常の状況下では、ポストの最初の大きな文字、小文字を表し;

                  特殊なケースでは、小さな文字大きな文字が前になりますが、対応して得られる値は、大規模なアルファベットである - 非常に小さいです

         そこで、我々は使用し、マッピングハッシュテーブルのサイズを使用することができますそれ以外の場合は、一般的なダイレクト+対応する値では、ローマ字を比較するために、ハッシュテーブルを-対応する値を

クラスのソリューション{
 パブリック// ハッシュテーブルマッピング文字、特殊なプロセス条件:文字の後の文字は、==の前にマイナスになる<文字の前に
    int型の romanToInt(文字列S){ 
        地図 < CHARINT > ハッシュ; 
        ハッシュ[ I  ] = 1。; 
        ハッシュ[ ' V ' ] = 5。; 
        ハッシュ[ ' X- ' ] = 10 ; 
        ハッシュ[ ' L ' ] = 50 ; 
        ハッシュ[ ' C' ] = 100 
        [ハッシュ' D ' ] = 500 
        [ハッシュ' M ' ] = 1000年
        
        int型の合計= 0 ;
        int型 iは= 0 ; iが(s.sizeを<)++ i)が
        { 
            場合(ハッシュ[S [i]は<ハッシュ[S [I + 1 ]])
            { 
                合計 = - [[i]はS]ハッシュ;
                続け; 
            }  + = ハッシュ[S [I]]。
        }
        
        戻り値の合計。
    } 
}。

      デジタル転送ローマ数字:

      、法律を遵守するために、次に最大数を表すために、より少ない文字を使用してみてください、この質問は、貪欲アルゴリズムで重要であり、そして:私は思った(ローマのローマの数が以前の数を追加することによって得ることはできない)、それらの必要な数を見つける最大から最小のローマへ

      だから、聞かせて、ローマにあるテーブルの必要数を構築して、貪欲な思考を計算します。

クラスのソリューション{
 パブリック// 貪欲アルゴリズム:最大のものから始めて、最小限の文字を使用して
    文字列 intToRoman(int型NUM){ 
        地図 < int型文字列 > = {{mapRom 。1" I " }、{ 4" IV " }、{ 。5" V " }、{ 9" IX " }、      
                                                { 10" X- " }、{ 40" XL " }、{ 50" L " }、{ 90" XC " }、
                                                { 100" C " }、{ 400" CD " }、{ 500" D " }、     
                                                { 900" CM " }、{ 1000年" M " }};
        自己r_iter =mapRom.rbegin(); 
        
        文字列RET; 
       
        一方、(NUM> 0 && r_iter =!mapRom.rend())
        { 
            場合(NUM> = r_iter-> 最初の)
            { 
                RET + = r_iter-> 第二; 
                NUM - = r_iter-> まず、
            } 
            
                r_iter ++ ; 
        } 
        戻りRET。

        
    } 
}。        

 

おすすめ

転載: www.cnblogs.com/Duikerdd/p/11752770.html