728x90
alphabet = 'abcdefghijklmnopqrstuvwxyz'
topLength = 0;
topString = '';
for index in range(len(s)):
memory = '' # a
for chr in s[index:]:
if(memory == ''):
memory += chr
elif(alphabet.index(memory[-1]) <= alphabet.index(chr)):
memory += chr
else:
break
if(len(memory) > topLength):
topLength = len(memory)
topString = memory
print(topString)
s는 input으로 들어온 스트링이다. 예를 들어 'abcdefclkwjefl'와 같다.
가장 긴 substring을 저장하기 위해 topLength와 topString으로 길이 수와 substring 자체를 저장하는 변수를 만든다. 그 다음 input 's'를 루프돌면서 memory의 가장 마지막 chr의 알파벳의 순서보다 루프를 도는 현재 chr의 알파벳 순서보다 작거나 같은 경우, chr에 덧붙여주고 그렇지 않을 경우 루프를 바로 break 걸어줌으로서 불필요한 chr이 더 쌓이는 것을 방지한다.
이 반복문이 끝나면 현재 substring이 memory에 저장되어있는데, 기존 메모리에 저장되어있는 substring보다 길이가 긴 경우 최신화해주는 방식으로 문제를 해결한다.
728x90
'Research > Python' 카테고리의 다른 글
Python_학습자료 모음 (0) | 2023.06.07 |
---|---|
python_nohup으로 앱 24시간 켜두기 (0) | 2023.04.17 |
shootingstar_성공로그_Selenium 스크래퍼 flask 서버 EC2 Linux에 배포하기 (0) | 2023.04.14 |
Python_WSGI? ASGI? (0) | 2023.04.10 |
Chrome_웹사이트가 자바스크립트 기반인지 확인하는 방법 (0) | 2023.03.26 |
댓글