0分pts求助
查看原帖
0分pts求助
671208
control_our_own_life楼主2023/3/9 21:29
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
using namespace std;
string s1, s2, cnt;

int huiwen(int b, int e) {
	for (int i = b, j = e; i < j; i++, j--)
		if (s2[i] != s2[j])
			return 0;
	return 1;
}

int main() {
	while (getline(cin, s2))
		s1 += s2;
	s2 = s1;
	for (int i = 0; i < s1.size(); i++)
		if (!((s1[i] >= 'A' && s1[i] <= 'Z') || (s1[i] >= 'a' && s1[i] <= 'z')))
			s2.erase(i, 1);
		else
			cnt += i + '0';
	int maxn = 0;
	string ans;
	for (int i = 0; i < s2.size(); i++) {
		for (int j = i + 1; j < s2.size(); j++) {
			if (s2[j] != s2[i])
				continue;
			if (huiwen(i, j)) {
				if (j - i + 1 > maxn)
					maxn = j - i + 1, ans = s1.substr(cnt[i] - '0', cnt[j] - '0');
			}
		}
	}
	if (!maxn) {
		cout << "1";
		int i = 0;
		while (!((s1[i] >= 'A' && s1[i] <= 'Z') || (s1[i] >= 'a' && s1[i] <= 'z')))
			cout << s1[i], i++;
	} else
		cout << maxn << endl << ans;
	return 0;
}/*
Confucius say: Madam, I'm Adam.
answer:
11
Madam, I'm Adam
*/
2023/3/9 21:29
加载中...