본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence

반응형

https://leetcode.com/problems/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence/description/

find함수 사용과 split을 구현한 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

 

📔 풀이과정

1. stringstream을 이용, 구분자를 공백 한 글자로 split함수를 구현해 수행한 결과를 vector <string> s에 저장해줍니다.

2. s에 대해 원소를 순회하며 접두어로 searchWord가 나왔는지 find함수의 결과로 확인합니다.

   2-1. 찾지 못했다면 string::npos, 찾았다면 string::size_type(unsigned long long)을 반환하므로 0인지 확인하면 됩니다.

   2-2. 찾았다면 i+1을 반환합니다.

📔 정답 출력 | 반환

찾지 못했다면 -1을 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector <string> split(string input, char delimeter) {
        stringstream ss(input);
        vector <string> res;
        string tmp;
        while(getline(ss, tmp, delimeter)) {
            res.push_back(tmp);
        }
        return res;
    }
    int isPrefixOfWord(string sentence, string searchWord) {
        vector <string> s = split(sentence, ' ');
        for(int i = 0; i < s.size(); i++) {
            auto searchResult = s[i].find(searchWord);
            if (searchResult == 0 ) return i + 1;
        }
        return -1;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.