13. Roman to Integer

题目描述:

Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.

思路:

基本字符:I V X L C D M

相应的阿拉伯数字表示为:1 5 10 50 100 500 1000

相同的数字连写,所表示的数等于这些数字相加得到的数,例如:III = 3

小的数字在大的数字右边,所表示的数等于这些数字相加得到的数,例如:VIII = 8

小的数字,限于(I、X和C)在大的数字左边,所表示的数等于大数减去小数所得的数,例如:IV = 4

正常使用时,连续的数字重复不得超过三次

在一个数的上面画横线,表示这个数扩大1000倍(本题只考虑3999以内的数,所以用不到这条规则)

罗马数字转阿拉伯数字规则(仅限于3999以内):

从前向后遍历罗马数字,如果某个数比前一个数小,则加上该数。反之,减去前一个数的两倍然后加上该数。

class Solution {
    public int romanToInt(String s) {
        HashMap<Character, Integer> map = new HashMap<>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        char[] chars = s.toCharArray();
        int res = map.get(chars[0]);
        for (int i = 1; i < chars.length; i++)
        {
            if (map.get(chars[i]) <= map.get(chars[i - 1]))
                res += map.get(chars[i]);
            else
                res += map.get(chars[i]) - 2 * map.get(chars[i - 1]);
        }
        return res;
    }
}


class Solution {
    public int romanToInt(String s) {
        char[] chars = s.toCharArray();
        int sum = 0;
        for (char c:chars)
        {
            if (c == 'I') sum += 1;
            if (c == 'V') sum += 5;
            if (c == 'X') sum += 10;
            if (c == 'L') sum += 50;
            if (c == 'C') sum += 100;
            if (c == 'D') sum += 500;
            if (c == 'M') sum += 1000;
        }
        if (s.indexOf("IV") != -1) sum -= 2;
        if (s.indexOf("IX") != -1) sum -= 2;
        if (s.indexOf("XL") != -1) sum -= 20;
        if (s.indexOf("XC") != -1) sum -= 20;
        if (s.indexOf("CD") != -1) sum -= 200;
        if (s.indexOf("CM") != -1) sum -= 200;
        return sum;
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Times New Roman.ttf是一种TrueType字体文件,常用于文字编辑和排版工作。它是由著名字体设计师斯坦利·莫里森(Stanley Morison)和细节改进者维克多·卡尔(Victor Lardent)于1931年共同设计的。Times New Roman字体在Windows和Mac操作系统上都有内置,因此在使用各种文字处理软件时都可以方便地选择和应用。 Times New Roman具有经典而优雅的外观,特点是正式、端庄、易读。它的独特设计使得文字在屏幕和打印品上都能保持清晰和可读性,无论是大标题、段落文字还是小字体都能得到清晰呈现。这使得Times New Roman.ttf广泛应用于报纸、杂志、书籍、商业文件和学术论文等领域。 另一个让Times New Roman.ttf备受欢迎的原因是其广泛的语言支持。它已经被设计为适应多种语言的排版需求,包括欧洲字符、西里尔字母、希腊字母等。这使得Times New Roman成为全球范围内各种文字编辑和排版工作的首选字体。 总之,Times New Roman.ttf是一种备受推崇的字体文件,以其经典、优雅和易读的特点在文字编辑和排版领域广泛应用。无论是在屏幕上还是打印品上,这种字体都能保持清晰和可读性,使得它成为许多专业领域中的首选字体。 ### 回答2: Times New Roman.ttf,全称为“Times New Roman.true type font”,即“新罗马字体true type字体”,是一种常见的字体文件。Times New Roman是一种比较正式、经典的衬线字体,由英国的蒙纳公司于1932年设计并发行。它起初是为了满足英国《泰晤士报》的印刷需求而开发的。 Times New Roman.ttf字体在排印和印刷领域应用广泛,尤其在学术论文、期刊、书籍、商务函件等正式场合中常被使用。它的特点是字形优雅端庄,字间距相对较窄,横线和竖线较粗,有较好的可读性。这种字体的使用可以给人一种专业和正式的感觉,常被认为是一种适用于传达严肃内容的字体。 除了在印刷领域,Times New Roman.ttf字体也被广泛应用于计算机文档、网页设计等领域。它成为了许多应用程序和操作系统的标准字体之一,例如微软的Word、Excel和PowerPoint等软件。由于其良好的可读性,它被许多人选择为个人和商业文件的默认字体。 虽然Times New Roman.ttf字体经常被使用,但由于它的广泛普及,一些人认为它很普通且缺乏个性。在一些创意和艺术设计领域,人们更倾向于选择一些独特而富有创意的字体来突出个性和独特性。 总的来说,Times New Roman.ttf是一种常见且使用广泛的字体,特点是正式、优雅,适合正式场合和专业需求。 ### 回答3: Times New Roman.ttf是一种常用的字体文件。该字体起源于英国报纸《泰晤士报》和《泰晤士报号角》,由英国字体设计师斯坦利·莫里森在1931年设计完成。Times New Roman字体以它的经典和优雅而闻名,成为许多印刷品和电子文档中的首选字体之一。 Times New Roman是一种衬线字体,也就是说字母的笔画末端有额外的装饰。它的字母形状均衡,笔画粗细适中,因而在印刷出版物中得到广泛应用。这种字体易于阅读,尤其在小字号下也能保持较好的可读性。因此,Times New Roman经常被用于书籍、报纸、杂志等印刷品的正文排版。 此外,Times New Roman在电子文档中也备受青睐。几乎所有的文字处理软件、电子邮件和网页浏览器都提供这种字体作为默认选项之一。这使得Times New Roman成为在不同平台和环境中保持一致性的理想选择。许多学术论文和报告要求使用Times New Roman字体,因为它被认为在学术写作中符合规范且具有专业感。 总之,Times New Roman.ttf是一种历史悠久、广泛使用的字体文件,以其经典、美观和易读的特点获得了广泛认可。无论是在印刷品还是电子文档中,Times New Roman都是一个受欢迎的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值