Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 문자열 목록에서 가장 긴 공통 접두사를 찾는 프로그램

<시간/>

소문자 문자열 목록이 있다고 가정하고 가장 긴 공통 접두사를 찾아야 합니다.

따라서 입력이 ["안티바이러스", "반시계방향", "반중력"]과 같으면 출력은 "안티"

가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

목록 단어를 알파벳순으로 정렬

  • 접두사 :=새 목록
  • 플래그 :=0
  • 0에서 단어 크기[0] 사이의 i에 대해
    • 단어의 각 j에 대해 수행
      • j[i]가 접두사의 마지막 요소와 같지 않으면
        • 접두사에서 마지막 요소 삭제
        • 플래그 :=1
        • 루프에서 나오다
    • 플래그가 1과 같으면
      • 루프에서 나오다
  • 접두사 배열에 있는 모든 요소를 ​​연결한 후 문자열 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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