회문 찾기
면접 대비시간 제한1초메모리 제한1024 MB
입력된 각 문자열에서 서로 다른 회문인 부분 문자열을 모두 찾습니다. 길이순으로 정렬하고, 길이가 같으면 처음 나타난 순서대로 출력합니다.
문제
회문(palindrome)은 왼쪽에서 읽으나 오른쪽에서 읽으나 같은 길이 1 이상의 문자열이다. Z, TOT, MADAM은 회문이지만 ADAM은 회문이 아니다. 문자열을 여러 개 입력받아, 각 문자열마다 원래 문자열의 부분 문자열 중 서로 다른 회문의 개수를 구하고, 그 회문들을 모두 출력하는 프로그램을 작성하라.
입력
입력은 여러 개의 문자열로 이루어지며, 한 줄에 문자열 하나가 주어진다. 확인할 문자열은 공백이 없는 한 단어로 된 문자열이다.
출력
서로 다른 회문을 모두 출력한다. 길이가 짧은 것부터 출력하고, 길이가 같은 회문은 원래 문자열에서 처음 등장한 순서대로 출력한다.
입력 문자열이 ADAM이면 서로 다른 회문은 A, D, M, ADA이므로 출력은 다음과 같다.
4 - "A" "D" "M" "ADA"
서로 다른 회문을 원래 단어에서 등장한 순서대로 나열하되, 길이순으로 정렬하여 출력한다.