AI 刷题-寻找满足条件的整数X| 豆包MarsCode AI 刷题

151 阅读2分钟
1. 寻找满足条件的整数X

有四个正整数A B C 和D找到一个正整数X(X>0) 使得 A=BX且C=DX如果不存在这样的X则返回-1

测试样例

样例1:

输入:s ="abc"输出:'aba

样例2:

输入:s ="cba"输出:'cac

样例3:

输入:s="aaa"输出:'-1

解答思路
  1. 检查B和D是否为0,因为除以0没有意义。
  2. 计算A除以B的结果,以及C除以D的结果。
  3. 检查这两个结果是否为整数,如果不是,则不存在这样的X,返回-1。
  4. 如果这两个结果相等,那么这个结果就是我们要找的X。
  5. 如果这两个结果不相等,那么不存在这样的X,返回-1。
Python代码
def solution(A: int, B: int, C: int, D: int) -> int:
    # 检查B和D是否为0
    if B == 0 or D == 0:
        return -1
    
    # 计算X的值
    x1 = A // B
    x2 = C // D
    
    # 检查X是否为整数,并且两个X是否相等
    if x1 == A / B and x2 == C / D and x1 == x2:
        return x1
    else:
        return -1

if __name__ == '__main__':
    print(solution(A = 4, B = 2, C = 6, D = 3) == 2)
    print(solution(A = 8, B = 4, C = 15, D = 5) == -1)
    print(solution(A = 9, B = 3, C = 12, D = 4) == 3)
2. 小M的37进制数字相乘问题

问题描述

小M最近在学习37进制的表示方法。37进制使用的字符集是:"8123456789ABCDEFGHIJKLMINOPQRSTUVWXYZ",其中字符依次代表从036的数字。现在,给定两个37进制的数字",其中字符依次代表从0到36的数字。现在,给定两个37进制的数字ab$,请你计算它们的乘积并输出结果,结果也需使用37进制表示。

测试样例

样例1:

输入:a ="Z",b)=“X”输出:'V8

样例2:

输入:a ="A",b ="B"输出:'2$

解题思路
  1. 转换为10进制:将两个37进制的数字ab转换为10进制。
  2. 乘法运算:计算这两个10进制数的乘积。
  3. 转换回37进制:将乘积转换回37进制,并返回结果。
代码实现
def solution(a: str, b: str) -> str:
    # 37进制的字符集
    base37_chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$"
    
    # 将37进制转换为10进制
    def base37_to_decimal(num_str):
        decimal = 0
        for i, char in enumerate(num_str[::-1]):
            decimal += base37_chars.index(char) * (37 ** i)
        return decimal
    
    # 将10进制转换为37进制
    def decimal_to_base37(decimal):
        if decimal == 0:
            return '0'
        base37_str = ''
        while decimal > 0:
            base37_str = base37_chars[decimal % 37] + base37_str
            decimal //= 37
        return base37_str
    
    # 将a和b转换为10进制
    decimal_a = base37_to_decimal(a)
    decimal_b = base37_to_decimal(b)
    
    # 计算乘积
    product = decimal_a * decimal_b
    
    # 将乘积转换回37进制
    result = decimal_to_base37(product)
    
    return result

if __name__ == '__main__':
    print(solution("Z", "X") == 'V8')  # 这里的输入应该是"Z"和"X",而不是"ZZ"和"X"
    print(solution("A", "B") == '2$')