题目描述
在 Hammer 水群时无意了解到了一个新的字符串问题:
Hammer 花了一天时间,明白了这个问题是指:至少修改多少字符,才能使 3 个长度为 k 的字符串完全相同。
请你帮 Hammer 解决这个问题
输入描述:
第一行输入一个正整数 k (1≤k≤105)k,表示字符串长度。
接下来三行,每行输入一个长度为 k的字符串,仅由小写字母组成。
输出描述:
输出一行一个整数,表示答案。
输入
2
ab
ab
ba
输出 2
说明
可以将第三个字符串修改为 "ab" ,只需修改 2 个字符。
输入
3 abc cbb aba输出
3
说明
将所有字符串修改为 "abb" ,需要修改 3 个字符。也可以将所有字符串修改为 "abc" ,同样需要修改 3 个字符。
#include <bits/stdc++.h>
using namespace std;
int k;
int main()
{
int ans=0;
cin>>k;
string s1,s2,s3;
cin>>s1>>s2>>s3;
for(int i=0;i<k;i++)
{
if(s1[i]==s2[i]&&s2[i]==s3[i])
continue;
else if(s1[i]==s2[i]||s2[i]==s3[i]||s1[i]==s3[i])
{
ans+=1;//如果有两个相同的加一
}
else
ans+=2;//如果三个都不相同 则加二
}
cout<<ans;
}