题目链接
计蒜客信息学1月CSP-J2模拟赛A题,https://nanti.jisuanke.com/t/43038。
本题是非常简单的一题。
题目
DD 手上现在有两个长度为 nnn 的字符串,她有一个魔法,每次施展魔法的时候可以把两个字符串的其中一个字符串的任意一位变成任何字母,请问最少需要多少次魔法,DD 可以收获两个完全一样的字符串。
输入格式
第一行一个整数表示 n。
第二行一个长度为 n 的字符串。
第三行一个长度为 n 的字符串。
输出格式
输出 DD 最少需要使用多少次魔法。
样例输入
3
abc
acb
样例输出
2
数据范围
对于 30% 的数据,1 ≤ n ≤ 10。
对于 60% 的数据,1 ≤ n ≤ 1000。
对于 100% 的数据,1 ≤ n ≤ 1000000。
题目分析
本题比较简单,还是写一个相对详细的题解。
输出分析
题目的要求就是找出两个输入字符串有几个不同的字符。我们参考一下样例输入,可知道字符串 A 为 abc,字符串 B 为 acb。可以看出字符串 A 和字符串 B 一共有两个字符不同,即第 2 位和第 3 位两个字符是不同的,所以样例输出为 2。
数据范围分析
本题字符串的长度范围为:1 ≤ n ≤ 1000000。因此,输出最大值是1000000,最小值为1。所以用 int 这个数据类型足够。
坑点
这题太简单了,应该没有什么坑点。
1、由于字符串比较长,要使用全局变量定义字符串。
编程思路
1、读取字符串长度 n。
2、分别读入字符串A和字符串B。
3、循环比较字符串A和字符串B不同。
AC参考代码
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6+2;
char strA[MAXN] = {};
char strB[MAXN] = {};
int main(){
int n;
cin >> n >> strA >> strB;
int ans = 0;
for (int i=0; i<n; i++) {
if (strA[i]!=strB[i]) {
ans++;
}
}
cout << ans << endl;
return 0;
}