입력으로 주어진 문자열에서 A 문자로 시작하고 B 문자로 끝나는 부분 문자열의 개수를 구하시오.
주어진 문자열: ADBABAWBA
총 6개
ADBABAWBA
ADBABAWBA
ADBABAWBA
ADBABAWBA
ADBABAWBA
ADBABAWBA
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
bool FindString(const vector<char>& string_vector, vector<char>::const_iterator where_first,
vector<char>::const_iterator where_second, const char& first, const char& second, int& count)
{
vector<char>::const_iterator first_find = find(where_first, string_vector.cend(), first);
vector<char>::const_iterator second_find = find(where_second, string_vector.cend(), second);
if (first_find == string_vector.cend())
return true;
if (second_find == string_vector.cend())
{
vector<char>::const_iterator FindNext = find(++first_find, string_vector.cend(), first);
FindString(string_vector, FindNext, FindNext, first, second, count);
}
else
{
cout << *first_find << *second_find << endl;
++count;
FindString(string_vector, first_find, ++second_find, first, second, count);
}
return true;
}
int main()
{
vector<char> string_vector;
int count = 0;
string_vector.push_back('A');
string_vector.push_back('D');
string_vector.push_back('B');
string_vector.push_back('A');
string_vector.push_back('A');
string_vector.push_back('E');
string_vector.push_back('D');
string_vector.push_back('B');
string_vector.push_back('A');
FindString(string_vector, string_vector.begin(), string_vector.begin(), 'A', 'B', count);
cout << count << endl;
return 0;
}
'알고리즘' 카테고리의 다른 글
알고리즘 면접 질문 (0) | 2022.09.28 |
---|---|
<C++ 알고리즘> Factorial (0) | 2021.10.04 |
<C++ 알고리즘> 구슬 정렬 (버블 정렬 활용) (0) | 2021.10.04 |
<C++ 알고리즘> 진부분집합 구하기 (0) | 2021.10.04 |
<C++ 알고리즘> 글자 거꾸로 출력(스택활용) (0) | 2021.09.15 |