[Quetion]
- 문자열 s의 하위 문자열에서 마지막 하위 문자열(단어)의 길이
- hello world --> world : 5 출력
문자열 s에서 공백이 있는 경우도 있을 것이기 때문에 strip()함수를 활용해서 해결해야겠다고 생각했다.
간단한 문제이기 때문에 2가지의 접근 방법으로 접근 해보았다.
# 첫번째 split() 활용
class Solution:
def lengthOfLastWord(self, s: str) -> int:
s=s.rstrip().split(' ')
return len(s[-1])
Runtime: 26ms | Memory: 16.3MB
LeetCode 코드 중 Runtime 99%, Memory 72% 해당하는 결과
# 두번째 반복문 활용
class Solution:
def lengthOfLastWord(self, s: str) -> int:
s=s.strip()
i=1
while len(s)>i:
if s[-i] == ' ':
return i-1
i+=1
return i
Runtime: 28ms | Memory: 16.1MB
LeetCode 코드 중 Runtime 97%, Memory 99% 해당하는 결과
두 방법 모두 시간복잡도는 O(N), 공간복잡도는 O(1)에 해당하는 결과이다.
성능적으로는 두 코드 모두 유사하다고 할 수 있다. 하지만 python 함수를 아는 경우, 코드 가독성과 간결성은 첫번째 코드가 더 좋다고 판단된다.
문제를 해결하고 다른 솔루션들을 참고해보니 대부분 첫번째 코드의 방법으로 접근하여 해결했지만, 두번째 접근법과 유사한 코드도 확인했다.
문자열을 다루는 문제는 다른 복잡한 자료구조 문제와는 달리 접근 방법이 더 다양한 것 같다고 생각된다.