Скобки Задан шаблон, в которой могут быть встречены 3 типа символов: открывающая круглая скобка, закрывающая круглая скобка и знак вопроса (вместо этого символа может расположиться любая из ранее упомянутых скобок). Определите сколько возможных комбинаций расположения скобок с соблюдением корректности скобочной записи (каждой открывающей скобке должна соответствовать следующая за ней закрывающая скобка на том же уровне вложенности, не должно быть открывающей или закрывающей скобки без пары) может описать шаблон?
Входные данные:
Строка, содержащая набор символов “(“, “)” и “?” (от 1 до 1000 символов) Выходные данные:
Программа должна вывести число возможных комбинаций расположения скобок.
Sample Input: (?
Sample Output: 2
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
signed main() {
char ok[10]{ 'b', 'v', 'g', 'd', 'z', 'l', 'm', 'n', 'r', 'w'};
string s;
getline(cin,s);
vector<string> words,ans;
string cur;
for(int i = 0; i < s.length(); i++){
if(s[i] != ' ') cur += s[i];
else{words.push_back(cur); cur.clear();}
}
for(auto i: words){
bool norm = false;
for(auto j: i)
if(strchr(ok,tolower(j))) norm = true;
if(norm) ans.push_back(i);
}
for(auto i: ans) cout << i << "\n";
}
В город М напрямую можно попасть только из города Н (в который напрямую можно попасть только из города Ж), и из города Ж. Значит, для любого пути в Ж из А есть два варианта, как проехать в М.
В город Ж можно попасть напрямую из городов В, Г, и Д. В город В из города А можно попасть тремя путями: АБВ, АГВ и АБГВ, в город Г - двумя: АГ и АБГ, в город Е - тремя: АГЕ, АДЕ и АБГЕ.
Итого: Из города А в город Ж есть 3+2+3=8 путей, из Ж в М - 2 пути. Для каждого пути из А в Ж есть оба варианта пути из Ж в М, поэтому умножаем: 8×2=16 путей.
ответ: 16 путей
Буду очень благодарен, если Вы отметите мой ответ как лучший!