当前位置: 首页 > news >正文

网站建设及宣传管理规定机顶盒视频网站建设

网站建设及宣传管理规定,机顶盒视频网站建设,网站关键词怎么写,最近免费视频中文2019完整版题目描述#xff1a;罗马数字由七种字符组成#xff0c;分别为 I、V、X、L、C、D 和 M#xff0c;对应的数值分别为 1、5、10、50、100、500 和 1000。在一般情况下#xff0c;小的数字位于大的数字右边#xff0c;但有特殊情况#xff0c;如 IV 表示 4#xff0c;IX 表… 题目描述罗马数字由七种字符组成分别为 I、V、X、L、C、D 和 M对应的数值分别为 1、5、10、50、100、500 和 1000。在一般情况下小的数字位于大的数字右边但有特殊情况如 IV 表示 4IX 表示 9XL 表示 40XC 表示 90CD 表示 400CM 表示 900。给定一个罗马数字需要将其转换成整数。 例如罗马数字 2 写做 II 即为两个并列的 1 。12 写做 XII 即为 X  II 。 27 写做  XXVII, 即为 XX  V  II 。 方法1 模拟 该方法的思想类似于“对号入座”找到什么罗马符号对应的什么值就写进去但是最关键的是要搞清楚前后的加减关系以Roman“MCMXCIV”为例第二个位置上的C所对应的值要比第三个位置上的M所对应的值要小关于前后是进行加法运算还是减法运算可以看下图的图解通过图解就可以清楚的知道该如何进行运算。  python完整代码 class Solution:symbol_values {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000}def romanToInt(self, str):digital 0 # 定义当前数字n len(str) # 罗马字数字长度for i, ch in enumerate(str):value Solution.symbol_values[ch]if i n - 1 and value Solution.symbol_values[str[i 1]]:digital - value # 左边比右边小---减else:digital value # 左边比右边大---加return digital# 设置罗马数字 Roman MCMXCIV solution Solution() result solution.romanToInt(Roman) print(罗马数字转整数的结果为: , result) c完整代码  #includeiostream #includeunordered_map using namespace std;class Solution{ private:unordered_mapchar, int symbol_values {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000}}; public:int romanToInt(string str){int digital 0;int n str.length();for(int i 0;i n;i){int value symbol_values[str[i]];if(i n - 1 value symbol_values[str[i 1]]){digital - value;} else{digital value;}}return digital;} };int main(){string Roman {MCMXCIV};Solution solution;int result solution.romanToInt(Roman);cout Roman into roman digital result endl;// 输出转换结果return 0; } java完整代码  import java.util.HashMap;public class RomanToInt {HashMapCharacter, Integer symbolValues new HashMapCharacter, Integer() {{put(I, 1);put(V, 5);put(X, 10);put(L, 50);put(C, 100);put(D, 500);put(M, 1000);}};public int romanToInt(String str) {int digital 0;int n str.length();for (int i 0; i n; i) {int value this.symbolValues.get(str.charAt(i));if (i n - 1 value this.symbolValues.get(str.charAt(i 1))) {digital - value;} else {digital value;}}return digital;}public static void main(String[] args) {// 创建 RomanToInt 类的实例RomanToInt converter new RomanToInt();// 设置当前罗马数字String Roman MCMXCIV;// 调用方法将罗马数字转换为整数int result converter.romanToInt(Roman);// 输出转换结果System.out.println(罗马数字转整数为: result);} } 方法2 贪心哈希表 该方法其实和上面的方法差不多也是逐一逐二的遍历哈希表中存储的罗马字符在根据所对应的值生成我们想要的整数其中关键的还是怎样分清楚什么时候加什么时候进行减。 python完整代码 class Solution:def romanToInt(self, str): # 添加 self 参数roman_dict {I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000} # 哈希表digital 0 # 整数结果for i in range(len(str)): # 遍历每个字符# 如果当前字符比下一个字符小则减去当前字符的值if i len(str) - 1 and roman_dict[str[i]] roman_dict[str[i 1]]:digital - roman_dict[str[i]] # 当前字符比下一个字符小---减else:digital roman_dict[str[i]] # 当前字符比下一个字符大---加return digital# 示例 Roman MCMXCIV solution Solution() integer_value solution.romanToInt(Roman) print(f罗马数字 {Roman} 转换为整数为: {integer_value}) c完整代码 #include iostream #include unordered_map using namespace std;class Solution { public:int romanToInt(string str) {unordered_mapchar, int roman_dict {{I, 1}, {V, 5}, {X, 10}, {L, 50}, {C, 100}, {D, 500}, {M, 1000}};int digital 0;for (int i 0; i str.length(); i) {// 如果当前字符比下一个字符小则减去当前字符的值if (i str.length() - 1 roman_dict[str[i]] roman_dict[str[i 1]]) {digital - roman_dict[str[i]]; //当前字符比下一个字符小---减} else {digital roman_dict[str[i]]; //当前字符比下一个字符大---加}}return digital;} };int main() {Solution solution;string Roman MCMXCIV;int integer_value solution.romanToInt(Roman);cout Roman digital Roman into int: integer_value endl;return 0; } java完整代码 import java.util.HashMap; public class RomanToInt1 {public int romanToInt(String str) {HashMapCharacter, Integer romanDict new HashMap();romanDict.put(I, 1);romanDict.put(V, 5);romanDict.put(X, 10);romanDict.put(L, 50);romanDict.put(C, 100);romanDict.put(D, 500);romanDict.put(M, 1000);int digital 0;for (int i 0; i str.length(); i) {// 如果当前字符比下一个字符小则减去当前字符的值// 在Java中charAt 是一个用于获取字符串中指定位置字符的方法。它是String类的一个成员方法// 语法为char charAt(int index) // 其中index 是字符串中字符的索引从0开始计数。返回值是指定索引位置的字符if (i str.length() - 1 romanDict.get(str.charAt(i)) romanDict.get(str.charAt(i 1))) {digital - romanDict.get(str.charAt(i));} else {digital romanDict.get(str.charAt(i));}}return digital;}public static void main(String[] args) {RomanToInt1 solution new RomanToInt1();String roman MCMXCIV;int integerValue solution.romanToInt(roman);System.out.println(罗马数字 roman 转换为整数为: integerValue);} }方法3 if-else方法 if-else方法的思路很简答主要思想就是从罗马数字的最右边往左遍历假如输入的都是图a中的罗马数字那么我们根本不用费什么劲直接划拉一遍直接M对应1000I对应1等等等等然后把得到的对应的整数加一块就皆大欢喜了但是最重要的问题是输入的罗马数字会出现图(b)所示的情况那么怎么解决这种情况呢方法很简单我们图(a)中所对应的罗马数字的情况中再加上图(b)这种情况也就是在当前位置再往前一位进行比较如果出现图b的情况时再补充上最后全部遍历完后把所有数字加一块就功成身退了。、 c完整代码  // -*- coding: utf-8 -*- // Time : 2024/1/4 10:28 // Author : 长沙有肥鱼 // FileName: 罗马数字转整数_if.cpp // Software: CLion // Blog : https://blog.csdn.net/weixin_53660567?spm1010.2135.3001.5343#include iostream using namespace std;class Solution { public:int romanToInt(std::string str) {int len str.length();int digital 0;for (int i len - 1; i 0; i--) { //从右往左边遍历if (str[i] V) {if (i - 1 0 str[i - 1] I) {//当V左边的罗马数字为I时 digital---4//当V左边的罗马数字不为I时 digital---5 因为除I以外的罗马数字都比它大digital 4;i--;continue;} else {digital 5;continue;}}if (str[i] X) {//当X左边的罗马数字为X时 digital---9//当X左边的罗马数字不为I时 digital---10if (i - 1 0 str[i - 1] I) {digital 9;i--;continue;} else {digital 10;continue;}}if (str[i] L) {if (i - 1 0 str[i - 1] X) {//当L左边的罗马数字为X时 digital---40//当L左边的罗马数字不为X时 digital---50digital 40;i--;continue;} else {digital 50;continue;}}if (str[i] C) {if (i - 1 0 str[i - 1] X) {//当C左边的罗马数字为X时 digital---90//当C左边的罗马数字不为X时 digital---100digital 90;i--;continue;} else {digital 100;continue;}}if (str[i] D) {if (i - 1 0 str[i - 1] C) {//当D左边的罗马数字为C时 digital---400//当D左边的罗马数字不为C时 digital---500digital 400;i--;continue;} else {digital 500;continue;}}if (str[i] M) {if (i - 1 0 str[i - 1] C) {//当M左边的罗马数字为C时 digital---900//当M左边的罗马数字不为C时 digital---1000digital 900;i--;continue;} else {digital 1000;continue;}}if (str[i] I) {//当L左边的罗马数字为I时 digital---1digital;}}return digital;} };int main() {Solution solution;std::string roman MCMXCIV;int integerValue solution.romanToInt(roman);std::cout Roman digital roman into int: integerValue std::endl;return 0; } python完整代码  # -*- coding: utf-8 -*- # Time : 2024/1/4 10:22 # Author : 长沙有肥鱼 # FileName: 罗马数字转整数_if_else.py # Software: PyCharm # Blog : https://blog.csdn.net/weixin_53660567?spm1010.2135.3001.5343 class Solution:def romanToInt(self, str):length len(str)digital 0i length - 1while i 0:if str[i] V:if i - 1 0 and str[i - 1] I:digital 4i - 1else:digital 5i - 1elif str[i] X:if i - 1 0 and str[i - 1] I:digital 9i - 1else:digital 10i - 1elif str[i] L:if i - 1 0 and str[i - 1] X:digital 40i - 1else:digital 50i - 1elif str[i] C:if i - 1 0 and str[i - 1] X:digital 90i - 1else:digital 100i - 1elif str[i] D:if i - 1 0 and str[i - 1] C:digital 400i - 1else:digital 500i - 1elif str[i] M:if i - 1 0 and str[i - 1] C:digital 900i - 1else:digital 1000i - 1elif str[i] I:digital 1return digital# 示例 solution Solution() roman_numeral MCMXCIV integer_value solution.romanToInt(roman_numeral) print(f罗马数字 {roman_numeral} 转换为整数为: {integer_value}) Java完整代码  public class RomanToInt2 {public int romanToInt(String str) {int len str.length();int digital 0;// 如果当前字符比下一个字符小则减去当前字符的值// 在Java中charAt 是一个用于获取字符串中指定位置字符的方法。它是String类的一个成员方法// 语法为char charAt(int index)// 其中index 是字符串中字符的索引从0开始计数。返回值是指定索引位置的字符for(int i len - 1; i 0; i--) {if(str.charAt(i) V) {if((i - 1 0) (str.charAt(i - 1) I)){digital 4;i--;continue;}else {digital5;continue;}}if(str.charAt(i) X) {if((i - 1 0) (str.charAt(i - 1) I)){digital 9;i--;continue;}else {digital 10;continue;}}if(str.charAt(i) L) {if((i - 1 0) (str.charAt(i - 1) X)){digital 40;i--;continue;}else {digital 50;continue;}}if(str.charAt(i) C) {if((i - 1 0) (str.charAt(i - 1) X)){digital 90;i--;continue;}else {digital 100;continue;}}if(str.charAt(i) D) {if((i - 1 0) (str.charAt(i - 1) C)){digital 400;i--;continue;}else {digital 500;continue;}}if(str.charAt(i) M) {if((i - 1 0) (str.charAt(i - 1) C)){digital 900;i--;continue;}else {digital 1000;continue;}}if(str.charAt(i) I) {digital;}}return digital;}public static void main(String[] args) {RomanToInt2 solution new RomanToInt2();String roman MCMXCIV;int integerValue solution.romanToInt(roman);System.out.println(罗马数字 roman 转换为整数为: integerValue);} }
http://www.pierceye.com/news/235793/

相关文章:

  • 南阳建设网站哪家好昆明网站服务
  • 大潮建设集团有限公司 网站网站改版策划方案
  • 网站开发心路历程烟台网站建设薇企汇互联见效付款
  • 企业网站的制作周期wordpress添加数据库表
  • 广告推广营销网站网站买空间的价格
  • 转转假网站怎么做linux建设视频网站
  • 伍佰亿搜索引擎网站系统wordpress 增加备案
  • 韩国做游戏的电影 迅雷下载网站有哪些网络营销方式文献
  • 大学生兼职网站的融资方案龙华网站建设设计制作公司
  • 青之峰网站建设哪家好用什么l软件做网站了
  • 免费建站资源怎么编写app软件
  • 机关网站建设建议云南响应式网站建设
  • 对网站开发语言的统计杭州网站设计公司有哪些
  • 不会代码 怎么做网站兴义网络推广
  • 综合电子商务型企业网站怎么做网站的网盘
  • ucenter使用自己做的网站房地产新闻时事热点
  • 企业网站备案 过户电商运营视频教程
  • 做网站运营这工作怎么样北京网站优化价格
  • 河南专业网站建设网站怎么做高权重
  • 国内大型电子网站建设做网站时怎么透明化
  • 微应用和微网站的区别手机网站开发的目的
  • 网站ico开一个网站建设公司好
  • wordpress中文站cn外贸网站怎么换域名
  • 淘宝客怎么做直播网站吗学校网站建设发展概况分析
  • 广州网站外贸推广建筑师必看的16部纪录片
  • 深圳网站建设平台网站右侧浮动广告
  • 中英文网站源码浙江东南网架公司
  • 个人备案网站放什么资料培训
  • html做企业门户网站提供设计的网站
  • 成都三合一网站建设成年s8视频加密线路