• C++
  • GESP 3月认证 C++ 1-4级打印版无答案

  • @ 2024-7-11 10:05:49

GESP 3月认证 C++ 1-4级打印版无答案 image image

4级的编程题:

相似字符串

#include <iostream>
#include <string>
using namespace std;
bool isSimilar(string A, string B) {
	int m = A.size(), n = B.size();//求字符串的长度
	if (abs(m - n) > 1) return false;
	if (m == n) {
		int diff = 0;
		for (int i = 0; i < m; ++i) {
			if (A[i] != B[i]) {
				if (++diff > 1) return false;
			}
		}
		return diff <= 1;
	} else {
		string& shorter = (m < n) ? A : B;
		string& longer = (m < n) ? B : A;
		int i = 0, j = 0;
		int diff = 0;
		while (i < shorter.size() && j < longer.size()) {
			if (shorter[i] != longer[j]) {
				if (++diff > 1) return false;
				++j;
			} else {
				++i;
				++j;
			}
		}
		return true;
	}
}
int main() {
	int T;// 需要判断的组数
	cin >> T;//输入
	while (T--) { // 循环T次
		string A, B; // 定义两个字符串
		cin >> A >> B;
		if (isSimilar(A, B)) {
			cout << "similar" << endl;
		} else {
			cout << "not similar" << endl;
		}
	}
	return 0;
}

做题

#include<bits/stdc++.h>
#define maxn 1000006
using namespace std;
long long a[maxn];int n;
int main()
{
	int m,ans=0;
	cin>>n;m=n;int s=1;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	for(int j=1;j<=m;j++)
	{
		for(int k=s;k<=n;k++)
		{
			if(j<=a[k])
			{
				ans++;
				a[k]=j;
				s=k;
				break;
			}
		}
	}
	cout<<ans;
	return 0;
}

0 条评论

目前还没有评论...