每⽇五个华为⾯试题答案之——python篇(2)多⽰例,建议收
藏偷偷看
1.盛最多⽔的容器难度:中等
给你 n 个⾮负整数 a1,a2,...,an,每个数代表坐标中的⼀个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的⽔。说明:你不能倾斜容器。⽰例 1:
输⼊:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输⼊数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳⽔(表⽰为蓝⾊部分)的最⼤值为 49。⽰例 2:输⼊:height = [1,1] 输出:1 ⽰例 3:输⼊:height = [4,3,2,1,4] 输出:16 ⽰例 4:输⼊:height = [1,2,1] 输出:2提⽰:
n = height.length
2 <= n <=
3 * 104
0 <= height[i] <= 3 * 104
2.整数转罗马数字难度:中等
罗马数字包含以下七种字符: 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 。同样地,数字 9 表⽰为IX。这个特殊的规则只适⽤于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表⽰ 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表⽰ 40 和 90。
C 可以放在
D (500) 和 M (1000) 的左边,来表⽰ 400 和 900。
给你⼀个整数,将其转为罗马数字。⽰例 1: 输⼊: num = 3 输出: "III" ⽰例 2: 输⼊: num = 4 输出: "IV" ⽰例 3: 输⼊: num = 9 输出: "IX" ⽰例4: 输⼊: num = 58 输出: "LVIII" 解释: L = 50, V = 5, III = 3. ⽰例 5: 输⼊: num = 1994 输出: "MCMXCIV" 解释: M = 1000, CM = 900, XC = 90, IV = 4. 提⽰:
1 <= num <= 3999
正则化一个五行五列的随机矩阵3.罗马数字转整数难度:简单
罗马数字包含以下七种字符: 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 。同样地,数字 9 表⽰为IX。这个特殊的规则只适⽤于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表⽰ 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表⽰ 40 和 90。
C 可以放在
D (500) 和 M (1000) 的左边,来表⽰ 400 和 900。
给定⼀个罗马数字,将其转换成整数。输⼊确保在 1 到 3999 的范围内。⽰例 1: 输⼊: "III" 输出: 3 ⽰例 2: 输⼊: "IV" 输出: 4 ⽰例 3: 输⼊: "IX" 输出: 9 ⽰例 4: 输⼊: "LVIII" 输出: 58 解释: L = 50, V= 5, III = 3. ⽰例 5: 输⼊: "MCMXCIV" 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4. 提⽰:
1 <= s.length <= 15
s 仅含字符 ('I', 'V', 'X', 'L', 'C', 'D', 'M')
题⽬数据保证 s 是⼀个有效的罗马数字,且表⽰整数在范围 [1, 3999] 内
题⽬所给测试⽤例皆符合罗马数字书写规则,不会出现跨位等情况。
IL 和 IM 这样的例⼦并不符合题⽬要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。
关于罗马数字的详尽书写规则,可以参考罗马数字 - Mathematics
4.最长公共前缀难度:简单
编写⼀个函数来查字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。⽰例 1:输⼊:strs = ["flower","flow","flight"]输出:"fl" ⽰例 2:输⼊:strs = ["dog","racecar","car"] 输出:"" 解释:输⼊不存在公共前缀。提⽰:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由⼩写英⽂字母组成
5.三数之和难度:中等
给你⼀个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。⽰例 1:输⼊:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] ⽰例 2:输⼊:nums = [] 输出:[] ⽰例 3:输⼊:nums = [0] 输出:[] 提⽰:
0 <= nums.length <= 3000
-105 <= nums[i] <= 105

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。