안녕하세요. 오늘은 팰린드롬을 만들어볼 거예요.
https://www.acmicpc.net/problem/30458
맨 중간에 있는 문자를 빼면 모든 문자가 이리저리 다 움직일 수 있습니다.
그러므로 그냥 맨 중간을 제외한 나머지 문자들의 개수가 모두 짝수이면 Yes, 아니면 No를 출력해주면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int len, i, cnt[26] = { 0 };
string s;
cin >> len >> s;
for (i = 0; i < len; i++)
cnt[s[i] - 'a']++;
if (len % 2 == 1) cnt[s[len / 2] - 'a']--; //중간은 빼주기
for (i = 0; i < 26; i++)
{
if (cnt[i] % 2 == 1)
{
cout << "No";
return 0;
}
}
cout << "Yes";
}
감사합니다.