leetcode 12题 数字转罗马数字

答案一:我的代码

代码本地运行完全正确,在线运行出错

 class Solution {
public:
string intToRoman(int num) { //哈希表初始化;
unordered_map<int,char>hash;
string str_initial1="IXCM";
string str_initial2="VLD";
int index=;
for(int i=;i<=;i*=){
hash[i]=str_initial1[index];
index++;
}
index=;
for(int i=;i<=;i*=){
hash[i]=str_initial2[index];
index++;
} //通过哈希表和取余数来进行倒序获取罗马字符
string s,re;
int temp=num;
int cnt=;
index=;
while(temp>){
int pop=temp%;
temp=temp/;
if(pop==){cnt*=;continue;}
else if(pop==){
s[index++]=hash[cnt*];
s[index++]=hash[cnt];
}else if(pop==){
s[index++]=hash[cnt*];
s[index++]=hash[cnt];
}else{
int flag=;
if(pop>){
flag=;
pop=pop-;
}
for(int i=;i<pop;i++){
s[index++]=hash[cnt];
}
if(flag==){
s[index++]=hash[cnt*];
}
}
cnt=cnt*;
}
//cout<<index<<endl;
for(int i=;i<index;i++){
re[i]=s[index-i-];
}
return re;
}
};

答案二:

参考别人将预先的特殊情况(即罗马数字符号进位与罗马数字前后大小颠倒两种情况全部事先存储起来,然后根据实际情况进行计算)

class Solution {
public:
string intToRoman(int num) {
vector<int> val={,,,,,,,,,,,,};
vector<string> rom={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
int i=;
string re="";
for(int i=;i<val.size();i++){
while(num>=val[i]){
re+=rom[i];
num-=val[i];
}
}
return re;
}
};

最新文章

  1. Vertica 高可用性测试
  2. 小猪cms命名规则整理
  3. python基础之day1
  4. Android使用ViewPager实现左右循环滑动及轮播效果
  5. jQuery修改class属性和CSS样式
  6. 回归树|GBDT|Gradient Boosting|Gradient Boosting Classifier
  7. 转!!java事务的处理
  8. pthread 学习
  9. 安装软件 报错1304 C:\Program Files\Common Files\VMware\VMware VMRC Plug-in\Firefox\dbghelp.dll验证您对该目录具有访问权限
  10. 浅析字符串操作方法slice、substr、substring及其IE兼容性
  11. 开发错误记录3:问题 Error:failed to find Build Tools revision 23.0.2
  12. 【BZOJ-4523】路由表 Trie树 + 乱搞
  13. javascript generate a guid
  14. hdu 5351 规律+大数
  15. C++与Lua交互(三)
  16. C# Linq-Aggregate
  17. SQLServer:无法生成 SSPI 上下文(Cannot generate SSPI context)
  18. 关于&lt;input type=&quot;date&quot;&gt;这种取值的问题 【原创】
  19. Oracle中用序列和触发器实现ID自增
  20. centos7 安装memcached

热门文章

  1. MVC和MVVM设计模式简单理解
  2. MySQL on duplicate key update 批量插入并更新已存在数据
  3. kibana报[FORBIDDEN/12/index read-only / allow delete (api)]错误
  4. Delphi 循环语句和程序的循环结构
  5. ui自动化之selenium操作(五)简单元素操作--续
  6. Xunsearch入门
  7. javaIO--数据流之IO流与字节流
  8. 集合综合练习&lt;二&gt;
  9. 【NOIP2016提高A组模拟8.19】(雅礼联考day2)总结
  10. Linux的目录结构与目录管理