题解 | #牛牛和罗马数字智力游戏#

牛牛和罗马数字智力游戏

https://www.nowcoder.com/practice/7f4bd3b2d7d34f5c87d84120d9782c1d

题目考察的知识点是:

哈希表运用

题目解答方法的文字分析:

本题可以使用哈希表来解决这个问题,首先定义一个字符二维数组,然后定义一个StringBuilder,使用循环根据条件将数据添加到StringBuilder中,最后通过计算得到结果

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param num int整型
     * @param limit int整型
     * @return string字符串
     */
    public String integerToRomanWithReverse (int num, int limit) {
        // write code here
        char[][] romanCharacters = {
            {'M', ' '},
            {'C', 'D'},
            {'X', 'L'},
            {'I', 'V'}
        };
        StringBuilder result = new StringBuilder();
        int magnitude = 1000;
        int romanCharIndex = 0;
        while (num > 0) {
            int quotient = num / magnitude;

            if (quotient <= 3) {
                for (int i = 0; i < quotient; i++) {
                    result.append(romanCharacters[romanCharIndex][0]);
                }
            } else if (quotient == 4) {
                result.append(romanCharacters[romanCharIndex][0]);
                result.append(romanCharacters[romanCharIndex][1]);
            } else if (quotient <= 8) {
                result.append(romanCharacters[romanCharIndex][1]);
                for (int i = 0; i < quotient - 5; i++) {
                    result.append(romanCharacters[romanCharIndex][0]);
                }
            } else {
                result.append(romanCharacters[romanCharIndex][0]);
                result.append(romanCharacters[romanCharIndex - 1][0]);
            }
            num %= magnitude;
            magnitude /= 10;
            romanCharIndex++;
            if (result.length() >= limit) {
                result.reverse();
            }
        }
        return result.toString();
    }
}

#题解#
全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务