[DEV] 기록

[c++] 문자열 내 특정 부분문자열 위치 찾기

꾸준함. 2021. 4. 24. 22:19

개요

알고리즘 문제를 풀다 보면 문자열 내 특정 부분 문자열이 시작하는 위치를 찾아야 하는 경우가 있습니다.

이때, 특정 부분 문자열이 여러 번 나올 경우 시작하는 위치들을 아래와 같은 코드를 통해 찾을 수 있습니다.

 

코드
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
string inputString, inputSubString;
cin >> inputString >> inputSubString;
size_t idx = inputString.find(inputSubString);
vector<int> beginningIdxesOfSubstring;
while (idx != string::npos)
{
// 부분문자열이 시작하는 위치들을 벡터에 추가
beginningIdxesOfSubstring.push_back(idx);
idx = inputString.find(inputSubString, idx + 1);
}
cout << "부분문자열이 시작하는 위치들: ";
for (int idx : beginningIdxesOfSubstring)
{
cout << idx << " ";
}
cout << "\n";
return 0;
}
view raw .cpp hosted with ❤ by GitHub

 

결과

 

반응형