首页 文章 精选 留言 我的

精选列表

搜索[双向转换],共10000篇文章
优秀的个人博客,低调大师

leetcode 12 ,13 Integer to Roman &&Roman to Integer 罗马与阿拉伯数组转换

12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution { public: /* 1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3; 2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12; 3、小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如:Ⅳ= 4;Ⅸ= 9; 4、正常使用时,连写的数字重复不得超过三次。(表盘上的四点钟“IIII”例外) 5、在一个数的上面画一条横线,表示这个数扩大1000倍。 */ int romanToInt(string s) { int res=0; int lastValue=0; int digit; for(int i=s.size()-1;i>=0;i--){ switch(s[i]){ case 'I': digit=1; break; case 'V': digit=5; break; case 'X': digit=10; break; case 'L': digit=50; break; case 'C': digit=100; break; case 'D': digit=500; break; case 'M': digit=1000; break; } if(digit>=lastValue){ res+=digit; lastValue=digit; } else res-=digit; } return res; } }; 罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法: 1. 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3; 2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12; 3. 小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9; 4. 在一个数的上面画一条横线,表示这个数增值 1,000 倍,如 5. string intToRoman(int num) { string table[4][10] = {{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}, {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}, {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}, {"", "M", "MM", "MMM"} }; string result; int count = 0; while(num > 0){ int temp = num % 10; result = table[count][temp] + result; num /= 10; count++; } return result; } The basic idea is really simple: replace every digit in num by roman numerals. For example, we have a num: 2438. 2 –> “MM” 4 –> “CD” 3 –> “XXX” 8 –> “VIII” Then the result is “MMCDXXXVIII”. M = ["", "M", "MM", "MMM"]; C = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]; X = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]; I = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]; return M[num/1000] + C[(num%1000)/100] + X[(num%100)/10] + I[num%10]; Simple C solution 16ms ● 0 L ljbschen Reputation: 10 void helper (char* ans, int* curp, int step, int one, int five, int ten) { char ch[]={'I','V','X','L','C','D','M'}; int offset=0; if (step==1000) offset=6; else if (step==100) offset=4; else if (step==10) offset=2; else offset=0; if (one==-1) ans[(*curp)++] = ch[offset]; if (ten==1) ans[(*curp)++] = ch[offset+2]; if (five==1) ans[(*curp)++] = ch[offset+1]; while (one-->0) ans[(*curp)++] = ch[offset]; } char* intToRoman(int num) { char *ans = malloc(sizeof(char)*16); int i=0, step=1000, digit=0; int one=0,five=0,ten=0; int curp=0; while (num>0) { digit=num/step; if (digit==9) {one=-1;five=0;ten=1;} else if (digit>=5) {one=digit-5;five=1;ten=0;} else if (digit==4) {one=-1;five=1;ten=0;} else if (digit==0) {one=0;five=0;ten=0;} else {one=digit;five=0;ten=0;} helper(ans,&curp,step,one,five,ten); num-=digit*step; step/=10; } ans[curp]='\0'; return ans; } 《架构大数据—-大数据技术及算法解析》 绪论 2013年被称为大数据元年,据IDC预测,到2020年全球将拥有35ZB(1ZB = 1021字节)的数据,大数据涉及国家战略、区域及企业发展、社会民生的方方面面,掌握大数据的核心概念、模式和技术,就把握了新时代的脉搏。 1.大数据技术概述 1.1大数据的概念 大数据指的是无法在规定时间内用现有的常规软件工具对其内容进行抓取、管理和处理的数据集合。 大数据技术则特指新一代的创新型的技术,能够突破常规软件的限制,是对大数据进行采集、存储和处理的技术的统称。 大数据(BigData)一词正式出现是在2011年麦肯锡全球研究院发布的《大数据:下一个创新、竞争和生产力的前沿》研究报告中。 大数据的4个根本特征: 1.Volume,数据量足够大 2.Variety,数据的种类多样 3.Velocity,数据的增长及处理速度快 4.Value,数据蕴藏价值大 1.2 大数据的行业价值 1.分析用户行为,建立数据模型,并进行预测 WalMart将尿不湿和啤酒摆放在一起的销售策略。 2.提升企业的资产管理,优化企业的业务流程 UPS通过在货车上安装传感器,优化行车路线,2011年,其驾驶员少跑了将近4828万千米的路程。 3.大数据服务智慧城市,智慧交通 智能电表,升级智能电网,由原来的数据库架构升级为HBase,使用Hive进行相关的统计分析。 4.变革公共医疗卫生,对疾病进行预测 Google 的Flurend,百度的疾病预测 5.在金融行业利用大数据进行战略决策和精准营销 6.利用大数据保障公共安全 7.利用大数据促进教育行业变革 8.大数据在改善着每个人的生活 p.s.

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册