소문자 문자열 목록이 있다고 가정하고 가장 긴 공통 접두사를 찾아야 합니다.
따라서 입력이 ["안티바이러스", "반시계방향", "반중력"]과 같으면 출력은 "안티"
가 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
목록 단어를 알파벳순으로 정렬
- 접두사 :=새 목록
- 플래그 :=0
- 0에서 단어 크기[0] 사이의 i에 대해
- 단어의 각 j에 대해 수행
- j[i]가 접두사의 마지막 요소와 같지 않으면
- 접두사에서 마지막 요소 삭제
- 플래그 :=1
- 루프에서 나오다
- j[i]가 접두사의 마지막 요소와 같지 않으면
- 플래그가 1과 같으면
- 루프에서 나오다
- 단어의 각 j에 대해 수행
- 접두사 배열에 있는 모든 요소를 연결한 후 문자열 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, words): words.sort() prefix = [] flag = 0 for i in range(len(words[0])): prefix.append(words[0][i]) for j in words: if j[i] != prefix[-1]: prefix.pop() flag = 1 break if flag == 1: break return ''.join(prefix) ob = Solution() words = ["antivirus", "anticlockwise", "antigravity"] print(ob.solve(words))
입력
["antivirus", "anticlockwise", "antigravity"]
출력
anti