파이썬2021. 4. 16. 03:55
728x90

[ 조건 ]

반드시 연속해서 반복해야 한다.

caggcaggatg는 cagg 반복이다.

caggatgcaggcagg 반복이 아니다.

 

 

[ 코드 ]

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
Posted by mminky