반응형
안녕하세요. 이번에는 14번 Leetcode 문제를 풀어보고자 합니다.
Leetcode 문제를 풀기전!!! 아직도 불편하게 웹사이트에서 테스트 진행하고 계신가요?
Jetbrain 계열의 제품들에 있는 Leetcode 플러그인을 사용해보세요.
테스트코드도 편하게 추가할 수 있고 자동완성도 되니 효율성이 올라갑니다!
Leetcode 플러그인 설치방법은 아래 포스트를 참고해주세요.
Leetcode 문제를 Pycharm(Jetbrain) 에서 풀어볼까?
문제
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: strs = ["flower","flow","flight"] Output: "fl"
Example 2:
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 lower-case English letters.
Related TopicsString
👍 5607👎 2523
간단히하면 배열의 원소들에 공통된 접두사를 리턴하라는 의미입니다.
해결
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ''
# 하나의 원소만 존재하는 경우 해당 원소를 리턴한다.
if len(strs) == 1:
return strs[0]
# 첫번째 원소를 기준으로 인덱스를 사용한다.
# 첫번째 원소가 다른 원소보다 긴 경우는 IndexError 로 비효율성을 줄일 수 있다.
for i, char in enumerate(strs[0]):
compare_char = strs[0][i] # 비교할 단어를 저장
for string in strs:
try:
# 입력받은 배열의 특정 인덱스를 비교할 단어와 비교하여 다르면 메서드 종료
if compare_char != string[i]:
return result
except IndexError:
# 인덱스 에러나면 입력받은 배열의 원소중 하나의 비교가 끝났다는 뜻이므로 종료
return result
# 위 for 문을 완료하면 배열의 모든 원소의 특정 인덱스는 같다고 보아도됨
result += compare_char
return result
결과
해당 포스트를 읽어주셔서 감사합니다.
행복한 하루 보내세요 ~!
반응형
'알고리즘' 카테고리의 다른 글
[Leetcode, Solution] 1. Two Sum 문제풀이 (420) | 2021.10.01 |
---|---|
[백준 알고리즘] 1655 문제 풀이 (451) | 2020.09.15 |
두 정수 사이의 합 (Level 1) :: 알고리즘 (0) | 2019.08.17 |