만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

회문 찾기

면접 대비

시간 제한1초메모리 제한1024 MB

요약
입력된 각 문자열에서 서로 다른 회문인 부분 문자열을 모두 찾습니다. 길이순으로 정렬하고, 길이가 같으면 처음 나타난 순서대로 출력합니다.
난이도

보통10점 중 4점

유형
문자열, 해시맵, 정렬
정답자
아직 제출이 없습니다

문제

회문(palindrome)은 왼쪽에서 읽으나 오른쪽에서 읽으나 같은 길이 1 이상의 문자열이다. Z, TOT, MADAM은 회문이지만 ADAM은 회문이 아니다. 문자열을 여러 개 입력받아, 각 문자열마다 원래 문자열의 부분 문자열 중 서로 다른 회문의 개수를 구하고, 그 회문들을 모두 출력하는 프로그램을 작성하라.

입력

입력은 여러 개의 문자열로 이루어지며, 한 줄에 문자열 하나가 주어진다. 확인할 문자열은 공백이 없는 한 단어로 된 문자열이다.

출력

서로 다른 회문을 모두 출력한다. 길이가 짧은 것부터 출력하고, 길이가 같은 회문은 원래 문자열에서 처음 등장한 순서대로 출력한다.

입력 문자열이 ADAM이면 서로 다른 회문은 A, D, M, ADA이므로 출력은 다음과 같다.

4 - "A" "D" "M" "ADA"

서로 다른 회문을 원래 단어에서 등장한 순서대로 나열하되, 길이순으로 정렬하여 출력한다.

예제1

  1. 예제 1

    입력
    MOM
    MADAM
    TOT
    ADAM
    
    예상 출력
    3 - "M" "O" "MOM"
    5 - "M" "A" "D" "ADA" "MADAM"
    3 - "T" "O" "TOT"
    4 - "A" "D" "M" "ADA"