#input = edeaaabbccd
def solution(input_string):
check_alp = sorted(list(set(sorted(list(input_string)))))
check_list = []
answer = ''
for i in check_alp:
j_index = []
for j in range(len(input_string)):
if i == input_string[j]:
j_index.append(j)
check_list.append(j_index)
for i in range(len(check_list)):
if len(check_list[i]) > 1:
if check_list[i][-1] - check_list[i][0] >= len(check_list[i]):
answer += check_alp[i]
if answer == '':
answer = 'N'
return answer
check_alp
= 알파벳을 정렬, 중복 제거한 리스트이다.
이 리스트 원소를 꺼내서 input_string에 동일한 원소가 있는지 체크하고, 있다면 그 인덱스번호를 리스트에 저장하여 리스트를 check_list
에 입력한다.
마지막으로 check_list
에서 외톨이알파뱃이 아니라면 (같은 알파벳끼리 연속으로 붙어있음) 가장 큰 인덱스에서 가장 작은 인덱스를 뺄 경우 알파뱃 갯수보다 작으므로
(3,4,5같은 경우 갯수는 3개지만 5에서 3을 빼면 2이다.)
그 반대를 생각해서 정답에 더해준다.