[Easy] 28. Implement strStr()

문제

Implement strStr().

Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

Clarification:

What should we return when needle is an empty string? This is a great question to ask during an interview.

For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C's strstr() and Java's indexOf().

haystack에서 needle 문자열을 찾아 시작하는 인덱스를 반환한다.

만약 needle 문자열을 찾지 못하면 -1을 반환한다.

 

예시

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2

Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1

 

제약 조건

Constraints:

  • 1 <= haystack.length, needle.length <= 104
  • haystack and needle consist of only lowercase English characters.

 

해결 과정

haystack에서 needle 문자열을 찾아 index를 반환하는 문제였다.

문제를 읽고 나서 바로 indexOf가 떠올라 쉽게 해결할 수 있었다.

내장 함수를 사용해서 그런지 시간이 조금 오래 걸려서 시간을 단축하는 풀이도 같이 첨부한다

 

해결 코드

나의 코드

/**
 * @param {string} haystack
 * @param {string} needle
 * @return {number}
 */
var strStr = function(haystack, needle) {    
    return haystack.indexOf(needle)
};

 

좀 더 시간복잡도가 빠른 코드

var strStr = function(haystack, needle) {
    const needleLength = needle.length;
    if(needleLength === 0) return 0;
    for(let i = 0 ; i < haystack.length ; i++){
        if(haystack.substring(i , i + needleLength) === needle){
            return i;
        }
    }
    return -1;
};

 

'leetCode' 카테고리의 다른 글

[Easy] 459. Repeated Substring Pattern  (0) 2022.06.13
[Easy] 896. Monotonic Array  (0) 2022.06.09
[Easy] 303. Range Sum Query - Immutable  (0) 2022.06.08
[Easy] 1603. Design Parking System  (0) 2022.06.08
[Easy] 404. Sum of Left Leaves  (0) 2022.06.06