小U的数字插入问题 | 豆包MarsCode AI刷题

76 阅读1分钟

解决思路

  1. 将 a 转换为字符串:便于逐位操作。
  2. 遍历 a 的每一个可能插入点:包括在字符串的开头和结尾。
  3. 构建新的字符串:对于每一个插入点,构建新的字符串并将其转换为整数。
  4. 比较并更新最大结果:记录所有可能结果中的最大值
def solution(a: int, b: int) -> int:
    a_str = str(a)
    b_str = str(b)
    
    max_result = 0
    
    for i in range(len(a_str) + 1):
        new_num = int(a_str[:i] + b_str + a_str[i:])
        if new_num > max_result:
            max_result = new_num
    
    return max_result

if __name__ == '__main__':
    print(solution(76543, 4) == 765443) 
    print(solution(1, 0) == 10)         
    print(solution(44, 5) == 544)       
    print(solution(666, 6) == 6666)     
    print(solution(15, 13) == 1513)     

代码解释

  1. 转换为字符串

    a_str = str(a)
    b_str = str(b)
    
    • 将 a 和 b 转换为字符串,方便逐位操作。
  2. 初始化最大结果

    
    max_result = 0
    
    • 初始化一个变量 max_result 用于存储最大结果。
  3. 遍历每一个可能的插入点

    for i in range(len(a_str) + 1):
        # 构建新的字符串
        new_num = int(a_str[:i] + b_str + a_str[i:])
        # 更新最大结果
        if new_num > max_result:
            max_result = new_num
    
    • 使用 for 循环遍历 a_str 的每一个可能插入点,包括在字符串的开头和结尾。
    • 对于每一个插入点 i,使用字符串切片和拼接操作 a_str[:i] + b_str + a_str[i:] 构建新的字符串。
    • 将新字符串转换为整数 new_num
    • 比较 new_num 和 max_result,如果 new_num 更大,则更新 max_result
  4. 返回最大结果

    return max_result
    
    • 返回 max_result 作为最终结果。