leetcode做题记录0012
发布日期:2021-05-07 13:47:47 浏览次数:21 分类:精选文章

本文共 1788 字,大约阅读时间需要 5 分钟。

leetcode 0012

说明

只是为了记录一下,不求多快,也不深究。

会简要描述思路,代码中不写注释。

如碰到不会做的用了别人代码会在博客中标出。

题目描述

在这里插入图片描述

在这里插入图片描述

结果

在这里插入图片描述

思路

除了千位单独加一下之外,百位十位个位加的策略都是一样的,写个switch,把1到9分类讨论即可。

代码

class Solution {       public StringBuilder part2Roman(int num,char yi,String si,char wu,String jiu) {   		StringBuilder str = new StringBuilder();		switch(num) {           case(1):        	str.append(yi);        	break;        case(2):        	str.append(yi).append(yi);        	break;        case(3):        	str.append(yi).append(yi).append(yi);        	break;        case(4):        	str.append(si);        	break;        case(5):        	str.append(wu);        	break;        case(6):        	str.append(wu).append(yi);        	break;        case(7):        	str.append(wu).append(yi).append(yi);        	break;        case(8):        	str.append(wu).append(yi).append(yi).append(yi);        	break;        case(9):        	str.append(jiu);        	break;        }		return str;	}	public String intToRoman(int num) {           StringBuilder romanStr = new StringBuilder();        char yiQian = 'M';        String jiuBai = "CM";        char wuBai = 'D';        String siBai = "CD";        char yiBai = 'C';        String jiuShi = "XC";        char wuShi = 'L';        String siShi = "XL";        char shi = 'X';        String jiu = "IX";        char wu = 'V';        String si = "IV";        char yi = 'I';        int qian = num/1000;        while(qian>0) {           	romanStr.append(yiQian);        	qian--;        }        int temp = num % 1000;        romanStr.append(part2Roman(temp/100, yiBai, siBai, wuBai, jiuBai));        temp = temp % 100;        romanStr.append(part2Roman(temp/10, shi, siShi, wuShi, jiuShi));        temp = temp % 10;        romanStr.append(part2Roman(temp, yi, si, wu, jiu));        return romanStr.toString();    }}
上一篇:leetcode做题记录0013
下一篇:leetcode做题记录0011

发表评论

最新留言

很好
[***.229.124.182]2025年04月05日 14时30分37秒