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

파이썬에서 가장 긴 공통 접두사


배열에 문자열 집합이 있다고 가정합니다. 배열의 문자열 중에서 가장 긴 공통 접두사를 찾아야 합니다. 여기에서는 모든 문자열이 소문자 문자열이라고 가정합니다. 그리고 공통 접두사가 없으면 ""를 반환합니다.

따라서 문자열 배열이 ["school", "schedule","Scotland"]와 같은 경우 가장 긴 공통 접두사는 "sc"입니다. 이 모든 문자열에 존재하기 때문입니다.

이 문제를 해결하기 위해 첫 번째 문자열을 curr로 가져오고 이제 배열에서 각 문자열을 가져와 문자별로 읽고 curr과 가져온 문자열 사이의 문자를 하나씩 확인합니다. 동일하면 다음 문자로 이동하고, 그렇지 않으면 루프를 중단하고 curr을 일치하는 부분 문자열로 업데이트합니다.

더 나은 이해를 위해 구현을 살펴보겠습니다.

예제(파이썬)

class Solution(object):
   def longestCommonPrefix(self, strs):
      """
      :type strs: List[str]
      :rtype: str
      """
      if len(strs) == 0:
         return ""
      current = strs[0]
      for i in range(1,len(strs)):
         temp = ""
         if len(current) == 0:
            break
         for j in range(len(strs[i])):
            if j<len(current) and current[j] == strs[i][j]:
               temp+=current[j]
            else:
               break
         current = temp
      return current
input_list = ["school","schedule","scotland"]
ob1 = Solution()
print(ob1.longestCommonPrefix(input_list))

입력

["school","schedule","scotland"]

출력

"sc"