天池编程大赛周赛-插入五

题目描述

给定一个数字,在数字的任意位置插入一个5,使得插入后的这个数字最大

$$|a| \leq 10^6$$

示例


  • 解题思路

很简单的模拟题, 但是还是要注意审题,一看到带有绝对值的取值范围,就要立刻想到负数情况。
又是第二次才AC, 有点儿遗憾。

  • 错误的题解示范:

    没有考虑到负数的情况

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class Solution:
    """
    @param a: A number
    @return: Returns the maximum number after insertion
    """
    def InsertFive(self, a):
    # write your code here
    result = []
    used = False
    for s in str(a):
    if 5 >= int(s) and not used:
    result.append('5')
    result.append(s)
    used = True
    else:
    result.append(s)
    if not used:
    result.append('5')
    return int("".join(result))
  • 题解1:

    正确的示范

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    class Solution:
    """
    @param a: A number
    @return: Returns the maximum number after insertion
    """
    def InsertFive(self, a):
    # write your code here
    result = []
    # 插入过5的标记
    used = False
    # 判断正负两种情况
    # 正数情况
    if a >=0:
    for s in str(a):
    if 5 >= int(s) and not used:
    result.append('5')
    result.append(s)
    used = True

    else:
    result.append(s)
    if not used:
    result.append('5')
    return int("".join(result))
    # 负数情况
    else:
    for s in str(abs(a)):
    if 5 < int(s) and not used:
    result.append('5')
    result.append(s)
    used = True

    else:
    result.append(s)
    if not used:
    result.append('5')
    return -int("".join(result))
文章作者: Spaceack
文章链接: http://spaceack.com/2020/11/07/2020-11-07-%E5%A4%A9%E6%B1%A0%E7%BC%96%E7%A8%8B%E5%A4%A7%E8%B5%9B%E5%91%A8%E8%B5%9B-%E6%8F%92%E5%85%A5%E4%BA%94/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 丸子家的小云吞
支付宝打赏
微信打赏