본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 1078. Occurrences After Bigram

반응형

https://leetcode.com/problems/occurrences-after-bigram/description/

 

Occurrences After Bigram - LeetCode

Can you solve this real interview question? Occurrences After Bigram - Given two strings first and second, consider occurrences in some text of the form "first second third", where second comes immediately after first, and third comes immediately after sec

leetcode.com

문자열을 다루는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

split된 배열 splited과 정답 ans를 선언해줍니다.

📔 풀이과정

split함수가 따로 없기 때문에 구현해줘야 합니다. stringstream으로 구현 가능합니다.

1. 공백으로 split된 vector들을 splited에 저장합니다.

2. splited의 원소를 순회하며 first와 second가 순서대로 나왔다면 3번째 원소를 ans에 push_back해줍니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector <string> split(string input, char delimeter){
        stringstream ss(input);
        string tmp;
        vector <string> res;
        while(getline(ss,tmp,delimeter)) {
            res.push_back(tmp);
        }
        return res;
    }
    
    vector<string> findOcurrences(string text, string first, string second) {
        vector <string> splited = split(text, ' ');
        vector <string> ans;
        for(int i = 0; i < splited.size() - 2; i++) {
            if(splited[i] == first && splited[i+1] == second) {
                ans.push_back(splited[i+2]);
            }
        }
        return ans;
    }
};

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