Вопрос
Реализуйте функцию bool chainable(vector
, которая принимает набор строк в качестве параметров и возвращает true
, если они могут быть соединены. Две строки могут быть соединены в цепочку, если первая заканчивается тем же символом, с которого начинается вторая, например:
ship->petal->lion->nick = true;
ship->petal axe->elf = false;
Мое решение:
По моей логике, если строка может быть соединена в цепочку, то только одно начало и конец не совпадают. Поэтому я создаю список начал и список концов. Например.
starts:s,p,l,n
ends: p,l,n,k
Если я удалю общие элементы, списки должны содержать не более одного элемента, а именно s и k. Если это так, то список цепной. Если список циклический, то конечные списки пусты.
Но мне кажется, что я упускаю некоторые случаи,
EDIT: Очевидно, в моем решении были ошибки. Можем ли мы сделать вывод о лучшем алгоритме для этого?