포럼
문제 R00322

양끝 회문 판별

설명

문자열을 양쪽 끝에서 한 글자씩 넣고 뺄 수 있는 자료구조를 이용하면, 어떤 문자열이 회문(앞에서 읽으나 뒤에서 읽으나 같은 문자열)인지 빠르게 확인할 수 있다.

\(Q\)개의 소문자 문자열이 주어진다. 각 문자열이 회문이면 YES, 아니면 NO를 출력하여라.

제약

\(1 \le Q \le 100\,000\), 각 문자열의 길이는 \(1\) 이상 \(20\) 이하이며, 모든 문자열 길이의 합은 \(1\,000\,000\) 이하이다.

입력 형식

첫째 줄에 문자열의 개수 \(Q\)가 주어진다. 다음 \(Q\)개의 줄에 각각 알파벳 소문자로 이루어진 문자열이 하나씩 주어진다.

출력 형식

각 문자열에 대해 회문이면 YES, 아니면 NO를 한 줄에 하나씩 출력한다.

예제 1
입력
3
level
apple
noon
출력
YES
NO
YES
설명

levelnoon은 회문이고 apple은 회문이 아니다.

예제 2
입력
2
a
ab
출력
YES
NO
설명

길이 \(1\)인 문자열은 항상 회문이며 ab는 회문이 아니다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

양끝 회문 판별

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

양끝 회문 판별

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8