728x90
[ 조건 ]
반드시 연속해서 반복해야 한다.
caggcaggatg는 cagg 반복이다.
caggatgcagg는 cagg 반복이 아니다.
[ 코드 ]
with open('input.txt','r') as f: s=f.readline() #더 긴 문자열을 넣을 곳이므로 초기화는 짧은 문자열(빈문자열)로 한다. tmp='' for i in range(len(s)): for j in range(len(s)): #i~j 문자열(길이 j-i)과 j+1~(j+1)+(j-i)을 비교 # -> 동일 길이끼리 비교 if s[i:j+1]==s[j+1:(j+1)+(j-i)+1]: new_tmp=s[i:j+1] #문자 더 긴 걸로 tmp 바꿔주기(update) if(len(new_tmp)>len(tmp)): tmp=new_tmp print(tmp)
주어진 문자열을 [0:1], [0:2], [0:3] ... [1:1], [1:2] ... [마지막:마지막] 이런 식으로 다 쪼갰다.
그리고 동일한 길이 만큼 더한 문자열과 같은지 비교했다.
같다면 new_tmp에 넣는다.
길이가 가장 긴 반복 문자열을 찾는 과정이기 때문에 len()을 이용해서 비교해 주었다.
※ 제 글이 도움이 되었다면 공감 부탁드려요 :)
반응형
'파이썬' 카테고리의 다른 글
[ Python ] 코드업 1602, 1610, 1615, 1620 (3) | 2021.05.10 |
---|---|
[ Python ] 달팽이 2차원 배열 (0) | 2021.04.30 |
[ Python ] 6097 (0) | 2021.04.16 |
[ 미해결 ] 6096 (0) | 2021.04.16 |
CodeUp 6083 시간초과 문제 (해결) (0) | 2021.04.14 |