鱼C论坛

 找回密码
 立即注册
查看: 1357|回复: 4

罗马数字转整数

[复制链接]
发表于 2020-11-26 23:14:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        f=0
        b=0
        number_dict={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
        special_one = {'IV': 4, 'IX': 9, 'XL': 40, 'XC': 90, 'CD': 400, 'CM': 900}
        #特殊的六种情况
        temp=s
        for each in special_one:
            if each in temp:
                f+=special_one.get(each)
                b=temp.replace(each,'')

        for i in set(b):
            A = b.count(i)
            f += A* number_dict.get(i)
        return f
他现在给我报错了 说红色这句话 ‘int’对象不可迭代,但我寻思set()后不是一个列表吗?
这个咋解决啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-26 23:16:06 | 显示全部楼层


建议发下完整代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 23:24:39 | 显示全部楼层
当if each in temp:不成立时,
b为0
而set的参数需要可迭代的类型,显然0不是。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-27 09:11:38 | 显示全部楼层
你这都发了两次求助帖了,昨天不是已经给你解决了嘛
你这个题是有什么硬性要求吗?
有什么要求就一次性说出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-27 10:25:47 | 显示全部楼层
  1. class Solution {
  2. public:
  3.     int romanToInt(string s) {
  4.         vector<int> T;
  5.         int sum = 0;
  6.         for(int i = 0; i < s.length(); i++)
  7.         {
  8.             switch(s[i])
  9.             {
  10.                 case 'I':
  11.                     T.push_back(1);
  12.                     break;
  13.                 case 'V':
  14.                     T.push_back(5);
  15.                     break;
  16.                 case 'X':
  17.                     T.push_back(10);
  18.                     break;
  19.                 case 'L':
  20.                     T.push_back(50);
  21.                     break;
  22.                 case 'C':
  23.                     T.push_back(100);
  24.                     break;
  25.                 case 'D':
  26.                     T.push_back(500);
  27.                     break;
  28.                 case 'M':
  29.                     T.push_back(1000);
  30.                     break;
  31.             }
  32.         }
  33.         if(T.size() == 1)
  34.             return T[0];
  35.         for(int i = 0; i < T.size()-1; i++)
  36.         {
  37.             if(T[i] < T[i+1])
  38.             {
  39.                 sum -= T[i];
  40.                 sum += T[i+1];
  41.                 i++;
  42.             }
  43.             else
  44.                 sum += T[i];
  45.         }
  46.         if(T.size() >= 2 && T[T.size()-2] >= T[T.size()-1])
  47.             sum += T[T.size()-1];
  48.         return sum;
  49.     }
  50. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表