日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

罗马数字转整数 · Roman to Integer

發(fā)布時(shí)間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 罗马数字转整数 · Roman to Integer 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

13.?Roman to Integer

[抄題]:

?[暴力解法]:

時(shí)間分析:

空間分析:

[思維問(wèn)題]:

  • 沒(méi)有想到羅馬字是逆序的情況
  • 沒(méi)有想到要先用toCharArray()方法把字符串拆成一個(gè)字符串?dāng)?shù)組
  • [一句話思路]:

    [輸入量]:空:?正常情況:特大:特小:程序里處理到的特殊情況:異常情況(不合法不合理的輸入):

    [畫(huà)圖]:

    [一刷]:

  • toInt函數(shù)要用。否則不能直接給字母比大小
  • 不是void類(lèi)型的函數(shù)就要返回默認(rèn)值,return 0
  • [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

    ? [五分鐘肉眼debug的結(jié)果]:

    [總結(jié)]:

    toInt函數(shù)要用。否則不能直接給字母比大小

    [復(fù)雜度]:Time complexity: O(n) Space complexity: O(n)

    [英文數(shù)據(jù)結(jié)構(gòu)或算法,為什么不用別的數(shù)據(jù)結(jié)構(gòu)或算法]:

    直接背英文對(duì)應(yīng)的數(shù)字就行了

    [其他解法]:

    [Follow Up]:

    [LC給出的題目變變變]:

    ?[代碼風(fēng)格] :

    public class Solution {/** @param s: Roman representation* @return: an integer*/public int romanToInt(String s) {char[] sc = new char[s.length()];sc = s.toCharArray();int ans = toInt(sc[0]);for (int i = 1; i < s.length(); i++) {ans += toInt(sc[i]);if (toInt(sc[i - 1]) < toInt(sc[i])) {ans -= 2 * toInt(sc[i - 1]);}}return ans;}//toIntprivate int toInt (char s) {switch(s) {case 'I':return 1;case 'V':return 5;case 'X':return 10;case 'L':return 50;case 'C':return 100;case 'D':return 500;case 'M':return 1000;}return 0;} } View Code

    ?

    ?整數(shù)轉(zhuǎn)羅馬字

    [抄題]:

    ?[暴力解法]:

    時(shí)間分析:

    空間分析:

    [思維問(wèn)題]:

    覺(jué)得可能有很多種分解方法:應(yīng)該數(shù)位分離,把千百十位分別挑出來(lái),就只有一種了

    [一句話思路]:

    [輸入量]:空:?正常情況:特大:特小:程序里處理到的特殊情況:異常情況(不合法不合理的輸入):

    [畫(huà)圖]:

    [一刷]:

  • 把不同的羅馬字拼起來(lái)也是寫(xiě)+號(hào)
  • [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

    ? [五分鐘肉眼debug的結(jié)果]:

    [總結(jié)]:

  • 記住羅馬字符數(shù)組的順序是M C X I即可
  • String M[] = {"", "M", "MM", "MMM"};寫(xiě)法不同?String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
  • [復(fù)雜度]:Time complexity: O() Space complexity: O()

    [英文數(shù)據(jù)結(jié)構(gòu)或算法,為什么不用別的數(shù)據(jù)結(jié)構(gòu)或算法]:

    無(wú)

    [其他解法]:

    [Follow Up]:

    [LC給出的題目變變變]:

    273.?Integer to English Words 差不多,小于20的數(shù)單獨(dú)列出來(lái)即可

    ?[代碼風(fēng)格] :

    public class Solution {/*** @param n: The integer* @return: Roman representation*/public String intToRoman(int n) {String M[] = {"", "M", "MM", "MMM"};String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};//XLString I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};return M[(n / 1000) % 10] + C[(n / 100) % 10] + X[(n / 10) % 10] + I[n % 10];} } View Code

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/immiao0319/p/8448799.html

    總結(jié)

    以上是生活随笔為你收集整理的罗马数字转整数 · Roman to Integer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。