Hamzawy
시간 제한1초메모리 제한256 MB
주어진 문자열마다 겹치지 않는 접두사이자 접미사이며 내부에 한 번 더 나타나는 가장 긴 문자열을 구합니다.
- 난이도
보통10점 중 6점
- 유형
- 문자열 매칭
- 정답자
- 아직 제출이 없습니다
문제
함자위(Hamzawy)는 프로그래밍 면접에서 아래 문제를 받았지만 답을 찾지 못했다. 대신 풀어 주자.
소문자 영어 알파벳으로 이루어진 문자열 가 주어진다. 의 접두사이면서 의 접미사이고, 동시에 안에 부분문자열로 한 번 더 나타나는 문자열을 찾아야 한다. 이 세 번의 등장은 서로 겹치면 안 된다. 조건을 만족하는 문자열 중 가장 긴 것을 구하라.
문자열 의 접두사는 의 뒤에서 문자를 개 이상 지워서 얻는 문자열이다. 접미사는 의 앞에서 문자를 개 이상 지워서 얻는 문자열이다. 부분문자열은 의 앞에서 개 이상, 뒤에서 개 이상 지워서 얻는 문자열이다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. ()
이어지는 개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄은 소문자 영어 알파벳 'a'부터 'z'로만 이루어진, 비어 있지 않은 문자열 하나이며 길이는 이하이다. 한 입력에 들어 있는 모든 문자열의 길이 합은 이하이다.
출력
각 테스트 케이스마다 한 줄에 Case n:을 출력하고, 공백 한 칸을 둔 다음 조건을 만족하는 가장 긴 문자열을 출력한다. 은 테스트 케이스 번호이고 부터 시작한다. 조건을 만족하는 문자열이 없으면 문자열 자리에 -1을 출력한다.