[Python] prefix구하기

^_^·2022년 7월 9일
0

Python

목록 보기
5/9
post-thumbnail

문제

strs은 단어가 담긴 배열입니다.

공통된 시작 단어(prefix)를 반환해주세요.

예를 들어

strs = ['start', 'stair', 'step']
return은 'st'
strs = ['start', 'wework', 'today']
return은 ''

풀이

def get_prefix(strs):
# 문자열 리스트의 길이가 1보다 같거나 작으면 ''를 리턴한다. 
	if len(strs) <= 1:
		return ''
# 문자열을 알파벳 순으로 정렬시킨다. 만약 strs = ['stair', 'step', 'start']를 정렬하면
# strs = ['stair', 'start', 'step'] 이되는데 순서대로 정렬했기 때문에 첫번쨰 문자열과 마지막을 비교하면 답을 구할 수 있다.
	strs.sort()
# 빈문자열을 만들고 공통된 시작문자를 더해준다.
	temp = ''
	for i in strs[0]:
# startswith는 True, False로 반환되며 startswith(시작하는 문자(열), 시작지점) 시작 부분에 서브 문자열을 지정 여부를 확인하는 데 사용된다.
# strs의 맨끝 문자열, 여기서는 'step'이 첫번째 문자열의 첫 문자+tmep로 시작하는지의 여부를 검사하고
# 만약 시작문자에 첫 문자열의 첫번째 글자가 있다면 tmep에 더해준다. 
# 시작문자열과 다른 문자열이 나올때 까지 더해주고 그렇지 않으면 while반복을 break한다. 그후 최종 temp값을 return한다.
		if strs[-1].startswith(temp+i):
			temp += i
		else: break
	return temp

0개의 댓글