Перебор всех возможных вариантов на основании ответов
Нужно посчитать общее количество комбинаций и посторить все возможные последовательности ответов на основании массива вопросов и ответов к ниму. по сути вывести все возможные варианты вопрос->ответ на основании выбора. какой алгоритм для этого подойдет лучше всего ?
[
{
"id":"x1",
"question":"question 1 ?",
"answers":[
{
"value":"yes",
"nextId":"x2"
},
{
"value":"no",
"nextId":"x3"
}
]
},
{
"id":"x2",
"question":"question 2 ?",
"answers":[
{
"value":"yes",
"nextId":"x4"
},
{
"value":"no",
"nextId":"x5"
}
]
},
{
"id":"x3",
"question":"question 3 ?",
"answers":[
{
"value":"yes",
"nextId":"x4"
},
{
"value":"no",
"nextId":null
}
]
},
{
"id":"x4",
"question":"question 4 ?",
"answers":[
{
"value":"yes",
"nextId":null
},
{
"value":"no",
"nextId":null
}
]
},
{
"id":"x5",
"question":"question 5 ?",
"answers":[
{
"value":"yes",
"nextId":null
},
{
"value":"no",
"nextId":null
}
]
}
]
Ответы (1 шт):
Автор решения: MrShnaider
→ Ссылка
Дан массив из одинаковых JSON'ов. В каждом из них есть строка с вопросом и массив ответов. Нужно будет два цикла: первый будет проходиться по массиву вопросов, второй (вложенный) для каждого вопроса будет проходиться по массиву ответов. Получается обычный проход по массиву, со вложенным циклом:
для каждого json в массиве:
для каждого ответа в json:
json.вопрос + ответ
Сложность примерно O(n*m) где n - кол-во вопросов, m - среднее кол-во ответов на один вопрос