📜  门| GATE-IT-2004 |第 43 题(1)

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

门 | GATE-IT-2004 | 第 43 题

这是一道来自印度的计算机科学硕士入学考试(GATE)的题目,难度适中,主要考察编程基础。

题目描述

有一个门,上面有 $n$ 个开关,每个开关有两种状态:打开或关闭。门可以被打开或关闭,当且仅当有一些开关的状态被改变了。每次需要改变的开关状态是指从当前状态(打开或关闭)到目标状态(也是打开或关闭)改变需要的最少步骤数。给定门的初始状态和目标状态,请编写一个程序,计算打开或关闭门所需的最小转换次数。

输入格式

输入的第一行包含一个整数 $T$,表示数据组数。接下来的 $3T$ 行,每组数据包含 3 行:

第一行是一个整数 $n$,表示开关的数量。

第二行是一个由 0 或 1 组成的长度为 $n$ 的字符串,表示门的初始状态。

第三行是一个由 0 或 1 组成的长度为 $n$ 的字符串,表示门的目标状态。

输出格式

输出包含 $T$ 行,每行一个整数,表示打开或关闭门所需的最小转换次数。

样例输入
2
5
11110
11011
6
101010
010101
样例输出
1
5
思路分析

这是一道非常简单的题目,只需要从左往右逐位比较当前状态和目标状态,如果不同就计数器加 1,最后输出计数器的值就是所求。代码中我们可以用一个变量 $count$ 来计数。

参考代码
for i in range(int(input())):
    n = int(input())
    s1 = input()
    s2 = input()
    count = 0
    for j in range(n):
        if s1[j] != s2[j]:
            count += 1
    print(count)

这段代码使用了一个 for 循环来遍历所有开关的状态,然后用一个 if 语句判断当前状态和目标状态是否相等,如果不相等就让计数器加 1。最后输出计数器的值就是所求。