leetcode13】的更多相关文章

leetcode-13罗马字符转整数 算法:转换的规律是先逐字符按照对应的阿拉伯数字累加,然后对于特殊的(I.X.C出现在左侧)要处理.处理方法:出现特殊字符组合减去双倍的左侧字符(在开始的处理中已经加过一次,而实际的结果中却是要减去,那么就需要在加的基础上减去两倍). Code: vertion : Java class Solution { public int romanToInt(String s) { int ans = 0; //处理特定字符 if(s.indexOf("IV&quo…
该题较为简单,但是需要知道罗马数字的表示以及取值.用了一下map,其实之前没用过,但仔细看了一下跟python的字典实际上差不多,扫了一遍函数就直接可以用了. class Solution { public: int romanToInt(string s) { unordered_map< }, { }, { }, { }, { }, { }, { } }; int sum = Dic[s.back()]; ; i >= ; --i){ sum += (Dic[s[i]] < Dic[…
题意: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 分析: 开始准备采用将罗马数字的字符串先划分千位,百位等,但是实际操作起来代码太复杂,而且自己想的逻辑也有问题. 最后采用的方式是从前到后遍历一遍字符即可,加判断来查看字符是不是与前面字符一起组成“小数在大数左边的数字”: 然后依次加数到结果进去即可. 代码: class S…
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, two is written as II in Roman numeral, just two one's added together. Twelve is written as, XII, which i…
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写做 XII ,即为 X + II . 27 写做  XXVII, 即为 XX + V + II . 通常情况下,罗马数字中小的数字在大的数字的右边.但也存在特例,例如 4 不写做 IIII,而是 IV.数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4…
public class Solution { private int ChangeToInt(char c) { ; string s = c.ToString(); switch (s) { case "I": number = ; break; case "V": number = ; break; case "X": number = ; break; case "L": number = ; break; case…
1.题目描述 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 2.我的分析思路 罗马数字转成阿拉伯数字,这里面需要知道罗马数字的构成规则.罗马数字通过7个不同字母的重复或组合,能够表示出所有正整数(罗马数字中没有0). I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000 比如:IV…
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写做 XII ,即为 X + II . 27 写做  XXVII, 即为 XX + V + II . 通常情况下,罗马数字中小的数字在大的数字的右边.但也存在特例,例如 4 不写做 IIII,而是 IV.数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4…
题目描述:编码 方法一: class Solution(object): def encode(self, n): if n == 0: return "" n -= 1 A = ['] # 01 2345 e = 2 while n >= e: n -= e e *= 2 A.append(') return "".join(A[::-1])…
题目描述: 方法: class Solution(object): def findSmallestRegion(self, regions, region1, region2): parent = {} for row in regions: top = row.pop(0) for bot in row: parent[bot] = top seen = {region1} while region1 in parent: region1 = parent[region1] seen.add…