2022-1
作者:
许鑫蓁
,
2025-03-08 11:18:14
· 江西
,
所有人可见
,
阅读 2
2022-1
好像写了一个多小时,用devc写的,要注意调试的时候首先检查能不能跑通,然后检查输入是否都是正确的,每次输入的时候都判断一下是否正确输入,还要注意devc的auto特别容易报错,一般用不了(直接暴力枚举了
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 1000;
int n, len, num;
string s[N];
int dis[N];
struct db{
string a, b;
int dis;
};
int main()
{
cin >> n;
vector<db> ex;
while(n --)
{
cin >> s[len];
// cout << s[len] << endl;
len ++;
}
// cout << len << endl;
// for(int i = 0; i < len; i ++) cout << s[i] << endl;
for(int i = 0; i < len; i ++)
{
for(int j = i + 1; j < len; j ++)
{
int s1 = s[i].size(), s2 = s[j].size();
// cout << s1 << " " << s2 << endl;
string a = s[i], b = s[j];
// cout << a << " " << b << endl;
// cout << a[0] << " " << b[0] << endl;
if(s1 == s2)
{
int res = 0;
for(int k = 0; k < s1; k ++)
{
if(a[k] != b[k]) res ++;
}
if(a > b) swap(a, b);
// ex[num].a = a, ex[num].b = b, ex[num].dis = res;
ex.push_back({a, b, res});
// cout << ex[num].a << " " << ex[num].b << " " << ex[num].dis << endl;
// num ++;
}
}
}
sort(ex.begin(), ex.end(), [&](db x, db y){
if(x.dis != y.dis) return x.dis < y.dis;
else if(x.a != y.b) return x.a < y.a;
else return x.b < y.b;
});
for(int i = 0; i < 6; i ++)
{
cout << ex[i].a << " " << ex[i].b << " " << ex[i].dis << endl;
}
return 0;
}
样例:
7
01010
11011
10101
10011
Roses
roses
cotes
输出:
10011 11011 1
Roses roses 1
01010 11011 2
10011 10101 2
Roses cotes 2
cotes roses 2