C题 Missing

思路

①输入正确的字符串 s 、学生人数 n 和学生提交的答案 a[i].ss

②因为答案要按字典序输出,所以先排序。

③把学生提交的答案 a[i].ss 依次和正确的字符串 s 进行比较,求出相似度 a[i].k ,并用 maxn 存储最大相似度。

④输出。

代码

using namespace std;
int n,maxn;
string s;
struct Node
{
	string ss;
	int k;
}a[101];//结构体
bool cmp(Node a,Node b)
{
	return a.ss>b.ss;
}
int main()
{
	cin>>s>>n;
	for(int i=1;i<=n;i++) cin>>a[i].ss;
	sort(a+1,a+n+1,cmp);//排序
	for(int i=1;i<=n;i++)
	{
		if(s.size()!=a[i].ss.size())
		{
			a[i].k=0;
		}
		else
		{
			for(int j=0;j<s.size();j++)
			{
				if(s[j]==a[i].ss[j]) a[i].k++;
			}
			maxn=max(maxn,a[i].k);//最大相似度比较
		}
	}
	for(int i=n;i>=1;i--)
	{
		if(a[i].k==maxn) cout<<a[i].ss<<endl;//输出
	}
	return 0;
}