Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Constraints:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] consists of only lowercase English letters.
사실 처음에 고민을 많이 했지만,,, 풀지 못했고 다른 분들이 leetcode에 올려두신 solution을 참고했다.
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
# get str
# print(strs)
res = ""
# loop statement for the number of input str
for a in zip(*strs):
print(set(a))
if len(set(a)) == 1:
res += a[0]
else :
return res
return res
아직 python 문법에 대해 모르는 부분이 많다.
파이썬의 경우 주먹구구식으로 프로젝트부터 진행했던 터라 체계적으로 어떻게 돌아가는 지도 잘 알지 못하고, 다른 언어와 달리 파이썬은 제공해주는 기본 함수들이 굉장히 많은데 이런 부분들을 잘 알지 못하고 있다.
그런 면에 있어서 오늘은 'zip' 함수와 'set'함수에 대해서 나오는 데 이를 한 번 살펴보자.
zip() Function
The zip() function returns a zip object, which is an iterator of tuples where the first item in each passed iterator is paired together, and then the second item in each passed iterator are paired together etc.
그러니까 이게 무슨 말인가 하면, 각각의 tuple의 짝을 이뤄준다는 뜻이다.
그래서 지퍼를 올리는 것 처럼 짝을 맞춰주는 것인데 밑에 예제를 돌려보면 (('John', 'Jenny'), ('Charles', 'Christy'), ('Mike', 'Monica')) 이런 식으로 짝을 이룬다.
In [4]:
a = ("John", "Charles", "Mike")
b = ("Jenny", "Christy", "Monica")
x = zip(a, b)
print(tuple(x))
# Source: https://www.w3schools.com/python/ref_func_zip.asp