📌  相关文章
📜  通过一次更改 1 位或 2 位检查是否可以使给定的两个数字相等或不相等(1)

📅  最后修改于: 2023-12-03 15:28:23.934000             🧑  作者: Mango

通过一次更改 1 位或 2 位检查是否可以使给定的两个数字相等或不相等

给定两个数字A和B,现在任务是判断它们是否可以通过只改变1或2位数字来使得它们相等或者不相等。如果可以则返回"YES",否则返回"NO"。

思路

匹配A和B的每一位数字,判断它们的不同数量。如果不同数量不超过2,则可以通过修改不同的数字来使得它们相等或者不相等。

算法分析

该算法的时间复杂度为O(n),其中n为数字A和B的位数。空间复杂度为O(1)。

代码实现
def check_numbers(A, B):
    count = 0
    for i in range(len(str(A))):
        if str(A)[i] != str(B)[i]:
            count += 1
    if count <= 2:
        return "YES"
    else:
        return "NO"
测试样例
样例输入1
A = 123
B = 223
样例输出1
YES
样例解释1

只需修改A的第一个数字即可使A和B相等,修改后A和B都为223。

样例输入2
A = 123
B = 345
样例输出2
NO
样例解释2

无法通过修改A中的1或2个数字使得A和B相等或不相等。