record | chenfx

chenfx , record everything……


  • 首页

  • 归档

  • 站点地图

罗马数字转整数

发表于 2018-07-23 | 阅读次数:

题目
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M;给定一个罗马数字,将其转换成整数;输入确保在 1 到 3999 的范围内。

示例1

1
2
输入:'III'
输出:3

示例2

1
2
输入:'IV'
输出:4

示例3

1
2
输入:"MCMXCIV"
输出:1994
阅读全文 »

整数转罗马数字

发表于 2018-07-20 | 阅读次数:

题目
罗马数字包含以下七种数字:I(1), V(5), X(10), L(50), C(100), D(500), M(1000);
那么除了这七种数值可以直接表示外,其他的数值是怎么表示的呢?例如:
数值2: II (两个 I 并列);同理,数字3也一样是三个并列
数字7: VII(一个 V 和两个 I 并列)
数值20: XX (两个 X 并列);同理,数字30也一样是三个并列
数值200:CCC(三个 C 并列);同理,数字3000也一样是三个并列

通常情况下,罗马数字中小的数字放在大的数字右边,即组成一个相加的整数值;但是也有特例,如 4、9、40、90、400、900;并且特殊的规则只有这 6 种情况:

  • I 可以放在 V(5) 和 X(10) 的左边,即表示 IV(4) 和 IX(9)
  • X 可以放在 L(50) 和 C(100) 的左边,即表示 XL(40) 和 XC(90)
  • C 可以放在 D(500)和 M(1000)的左边,即表示 CD(400)和 CM(900)

那么,在满足以上条件的情况下,给定一个整数,将其抓换成罗马数字;并保证数字在 [1 - 3999] 内。

示例1

1
2
输入:3
输出:'III'

示例2

1
2
输入:59
输出:'LVIIII'

示例3

1
2
输入:1993
输出:'MCMXCIII'
阅读全文 »

盛最多水的容器

发表于 2018-07-08 | 阅读次数:

题目
给定 n 个非负整数 a1,a2, … ,an,每个数代表坐标中间的一个点 (i, ai);在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0);找出其中的两条线,使它们与 x 轴共同构成的容器能容纳的水最多。

示例

1
2
输入:[1,8,6,2,5,4,8,3,7]
输出:49
阅读全文 »

回文数字

发表于 2018-06-25 | 阅读次数:

题目
判断一个整数是否是回文数。

示例1

1
2
输入:121
输出:true

示例2

1
2
3
输入:-121
输出:false
原因:数字正序从左往右读是 -121,而逆序从右往左读是 121-,所以不是回文数
阅读全文 »

字符串转整数(atoi)

发表于 2018-06-10 | 阅读次数:

题目:实现 atoi ,将字符串转成整数。
该函数首先需要丢弃任意多的空格字符,直到找到第一个非空格字符为止;如果第一个非空字符是正号或者负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值;如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,他们对函数没有影响。
当字符串中的第一恶非空字符序列不是有效的整数,或字符串为空,或字符串仅包含空白字符时,则不进行转换。
或函数不能执行有效的转换,则返回0.

说明
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。如果数值超过可表示的范围,则返回 (231 − 1) 或 (−231) 。

示例1

1
2
输入:"42"
输出:42

示例2

1
2
输入:"   42"
输出:42

示例3

1
2
输入:"29292 asdddf"
输出:29292

示例4

1
2
输入:"afsfsf 442232"
输出:0

示例5

1
2
输入:"-91283472332"
输出:-2147483648
  • 通过题目和示例可以看出,在字符串转数字的过程中,只要遇到了不是数字或者正负号的符号时直接返回0.
阅读全文 »
1…8910…13
chenfx

chenfx

64 日志
13 标签
GitHub
Creative Commons
© 2016 — 2023 chenfx
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3

渝公网安备 50010302001280号

渝ICP备16001477号-1