HelloCho

[Python] #28. Implement strStr()(Easy) 본문

코테/LeetCode

[Python] #28. Implement strStr()(Easy)

choo2969 2020. 9. 6. 03:05

문제

이 문제는 haystack의 문자 안에서 needle의 위치를 찾는 문제이다. 존재할 경우 index값을 없다면 -1 값을 return 한다. 

첫 번째 방법 python 내장함수의 find함수를 활용한다.

class Solution:
    def strStr(self, haystack,needle):
        length = len(needle)
        if length ==0:
            return 0
        return haystack.find(needle)

find 함수를 통해서 아주 쉽게 ? 해결 가능했다. 
결과 

20ms의 속도와 13.9mb 메모리 사용으로 통과!

다음 방법은.. for문을 이용해서 needle값을 찾는 경우이다. 

class Solution:
    def strStr(self, haystack,needle):
        length = len(needle)
        if len(haystack) == 0  and len(needle) == 0 :
            return 0
        for i in range(len(haystack)):
            if haystack[i:i+length] == needle:
                return i
        else:
            return -1 

i번째부터 needle의 길이만큼 indexing한 이후에 needle의 값과 비교했다. 

결과 

40ms의 속도와 13.7mb의 메모리 사용으로 통과! 

Comments