• leetcode算法题(4)


    问题描述:

    罗马数字包含以下七种字符: I, V, X, LCD 和 M

    我的解答:

    package Simple;

    public class RoamnInt {
    public static void main(String[] args) {
    RoamnInt r = new RoamnInt();
    System.out.println(r.romanToInt("IX"));
    }

    public int romanToInt(String s) {
    //如果前一个数为I,后一个数为V或X要单独考虑
    //如果前一个数为x,后一个数为L或C要单独考虑
    //如果前一个数为C,后一个数为D或M要单独考虑
    //不考虑特殊情况,没出现一个字符就加上对应的数值
    int res = 0;
    for (int i = 0; i < s.length(); i++) {
    char t = s.charAt(i);
    switch (t) {
    case 'I':
    if (i < s.length() - 1 && (s.charAt(i + 1) == 'V' || s.charAt(i + 1) == 'X'))
    res -= 1;
    else res += 1;
    break;
    case 'V':
    res += 5;
    break;
    case 'X':
    if (i < s.length() - 1 && (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C'))
    res -= 10;
    else res += 10;
    break;
    case 'L':
    res += 50;
    break;
    case 'C':
    if (i < s.length() - 1 && (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M'))
    res -= 100;
    else res += 100;
    break;
    case 'D':
    res += 500;
    break;
    case 'M':
    res += 1000;
    break;

    }
    }
    return res;
    }
    }
    自我分析:

  • 相关阅读:
    [转]MYSQL5.7版本sql_mode=only_full_group_by问题
    [坑]Linux MySQL环境表名默认区分大小写
    [转]CentOS 7.3 安装MySQL
    [转]Oracle截取字符串相关函数
    服务相关
    CSRF攻击
    sqlalchemy——多表操作
    sqlalchemy——基本操作
    高可用——网站运行监控
    高可用——软件质量保证
  • 原文地址:https://www.cnblogs.com/iceywu/p/11799580.html
Copyright © 2020-2023  润新知