BOJ 15927, 회문은 회문아니야!

구현

BOJ 15927, 회문은 회문아니야!

이 문제는 구현 문제입니다.

풀이

첫 번째, 문자열이 팰린드롬인지 확인한다. 문자자체가 팰린드롬이 아니라면 그대로 문자열크기를 출력하면됩니다.

두 번째, 문자열이 팰린드롬이라면 문자열의 모든 문자가 모두 같지 않은 이상 한 문자만 뺀다면 팰린드롬이 깨집니다. ​

#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
	string str;
	cin >> str;
	int len = str.size();
	int chk = 0;
	for (int i = 0; i < len / 2; i++) // 문자열이 팰린드롬인지 확인
		if (str[i] != str[len - i -1])
			chk = 1;
	if (chk == 1) // 문자열이 팰린드롬X
		printf("%d", len);
	else // 문자열이 팰린드롬
	{
		for (int i = 0; i < len - 1; i++)
			if (str[i] != str[i + 1])
				chk = 1;
		if (chk == 0) // 모든 문자가 같으면 항상 팰린드롬
			printf("-1");
		else // 보통 팰린드롬은 1문자만 빼면 팰린드롬X
			printf("%d", len - 1);
	}
	return 0;
}

출처 : https://www.acmicpc.net/problem/15927