WA#6 #7求调
查看原帖
WA#6 #7求调
1128414
ptb15楼主2023/10/15 15:36
#include <bits/stdc++.h>
using namespace std;

int n;
string t_1, t_2;
int k_1;
bool k_2[500001];

int main() {
	scanf("%d", &n);
	cin >> t_1;
	for (int i = 1; i <= n; i++) {
		cin >> t_2;
		if (t_2.size() - 2 > t_1.size() - 1)
			continue;
		if (t_2 == t_1) {
			k_2[i] = 1;
			k_1++;
			continue;
		} else {
			if (t_2.size() >= t_1.size() + 2|| t_2.size() <= t_1.size() - 2)
				continue;
			int cnt = 0;
			for (int j = 0, k = 0; j < t_2.size() && k < t_1.size(); j++, k++) {
				if (t_2[j] != t_1[k]) {
					cnt++;
					if (t_2.size() < t_1.size())
						j--;
					else if (t_2.size() > t_1.size())
						k--;
				}
			}
			if (cnt <= 1)
				k_2[i] = 1, k_1++;
		}
	}
	printf("%d\n", k_1);
	for (int i = 1; i <= n; i++)
		if (k_2[i])
		printf("%d ", i);
	printf("\n");
}

按倒数第二篇题解写的代码。

2023/10/15 15:36
加载中...