成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

阿拉伯?dāng)?shù)字轉(zhuǎn)換成羅馬數(shù)字

2bdenny / 3454人閱讀

摘要:阿拉伯?dāng)?shù)字轉(zhuǎn)換成羅馬數(shù)字給出一個阿拉伯?dāng)?shù)字,返回此數(shù)字的羅馬數(shù)字表示思路用表記錄關(guān)鍵的羅馬數(shù)字和阿拉伯?dāng)?shù)字,將輸入循環(huán)除以,,這些關(guān)鍵數(shù)字,余數(shù)為,將對應(yīng)的羅馬字符串加次看到大神的思路,也是查表,但更加精妙,將數(shù)字分解為千位,百位,十位和個

阿拉伯?dāng)?shù)字轉(zhuǎn)換成羅馬數(shù)字 Integer to Roman

給出一個阿拉伯?dāng)?shù)字,返回此數(shù)字的羅馬數(shù)字表示

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

example 1

input: CCCLXXXIX
output: 389
思路

用表記錄關(guān)鍵的羅馬數(shù)字和阿拉伯?dāng)?shù)字,將輸入循環(huán)除以1000,900,500 ... 這些關(guān)鍵數(shù)字,余數(shù)為y,將對應(yīng)的羅馬字符串加y

看到大神的思路,也是查表,但更加精妙,將數(shù)字分解為千位,百位,十位和個位,然后查表將字符串相加,很神奇的思路,剛看到的時候驚嘆了一下,代碼如下

代碼
class Solution(object):
    # 思路1
    def intToRoman1(self, num):
        """
        :type num: int
        :rtype: str
        """
        arabic = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
        roman = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]
        ret = ""
        i = 0
        while num:
            yu = num // arabic[i]
            ret += roman[i] * yu
            num = num - yu * arabic[i]
            i += 1
        return ret

    # 神奇的思路2
    def intToRoman2(self, num):
        M = ["", "M", "MM", "MMM"] #0, 1000, 2000, 3000
        C = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"] #0, 100, 200, ... , 900
        X = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"] #0, 10, 20, ... , 90
        I = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"] #0, 1, 2, ... , 9
        return M[num // 1000] + C[(num % 1000) // 100] + X[(num % 100) // 10] + I[num % 10]

本題以及其它leetcode題目代碼github地址: github地址

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38672.html

相關(guān)文章

  • JavaScript類型轉(zhuǎn)換的迷糊事兒

    摘要:下面分幾步來簡單的探探不同類型的轉(zhuǎn)換吧以下的內(nèi)容,都可以從權(quán)威指南中找到。其他值轉(zhuǎn)換成在編寫代碼的過程中,幾乎不用考慮它的取值類型。核心內(nèi)置類,會嘗試先于可以理解為對象優(yōu)先轉(zhuǎn)換成數(shù)字例外的是,利用的是轉(zhuǎn)換。 最近在寫公司的登錄注冊模塊,遇到類型不同相比較的時候,就心驚膽戰(zhàn),每次都要用瀏覽器來驗證一下,決定亂七八糟的隨便寫一下,方便日后自己回顧知識~ 弱類型帶來的那些讓人迷糊的事 弱類型...

    harriszh 評論0 收藏0
  • 詳解加法運算符

    摘要:數(shù)字加轉(zhuǎn)為,再做加法運算。在這里,被解析成一個空的因此實際上解析成這樣就是把一個空數(shù)組轉(zhuǎn)換成數(shù)值,調(diào)用之后還是自身,因此調(diào)用得到一個空字符串,轉(zhuǎn)換成數(shù)字。參考詳解的加法運算符中和的返回值情況是怎樣的 JavaScript 里面不同的類型做加法之前,需要做各種轉(zhuǎn)換,這里做一個比較完善的總結(jié)。 基本轉(zhuǎn)換規(guī)則 運算雙方存在對象時 如果有一個對象,那么先把它轉(zhuǎn)換成基本類型值 轉(zhuǎn)換之后,如...

    劉永祥 評論0 收藏0
  • 羅馬數(shù)字轉(zhuǎn)換阿拉數(shù)字

    摘要:羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字給出一個羅馬數(shù)字字符串,返回此數(shù)字的阿拉伯?dāng)?shù)字思路存儲單個羅馬字母代表的阿拉伯?dāng)?shù)字初始狀態(tài),循環(huán)遍歷字符串,如果所代表的阿拉伯?dāng)?shù)字大于的,則加到上,如果小于,則減去代表的阿拉伯?dāng)?shù)字代碼右邊界保證不會下標(biāo)越界本 羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字 Roman to integer 給出一個羅馬數(shù)字(字符串),返回此數(shù)字的阿拉伯?dāng)?shù)字(int) Given a roman n...

    趙連江 評論0 收藏0
  • JavaScript核心概念(1):類型轉(zhuǎn)換

    摘要:核心內(nèi)置類,會嘗試先于可以理解為對象優(yōu)先轉(zhuǎn)換成數(shù)字例外的是,利用的是轉(zhuǎn)換。非核心的對象,通過自己的實現(xiàn)中定義的方法轉(zhuǎn)換成原始值。 本文首發(fā)于個人博客 showImg(https://segmentfault.com/img/remote/1460000015954811?w=639&h=724); 看到這個是不是有一種想打人的感覺,垃圾 JavaScript,這特么都什么鬼,相信很多...

    tracymac7 評論0 收藏0
  • js變量類型

    js有六種原始類型:undefined、null、string、number、boolean、object(Array和Function都是特殊的Object),它們之間可以相互轉(zhuǎn)換 Number類型 整數(shù)類型可以用四種進制表示,最常見的是10進制 10進制 16進制 以0x開頭 8進制 以0開頭,如果后面包含0-7以外的數(shù)字,視為是10進制 2進制 以0b開頭,如果后面包含0-1以外的數(shù)字,會...

    cloud 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<