如何编写C++代码来重新排列单词顺序,使每个单词的第一个字母(除了第一个)等于前一个单词的最后一个字母?
注意事项:这个问题听起来很具体,几乎没有实际价值。2然而,它很容易解释和理解,并且解决它所需的技术可以应用于需要找到一条完整路径的几个问题,该路径通过一个模拟约束或障碍的图访问每个“节点”正好一次。3这些问题可能令人生畏地难以理解,但是一旦知道了生成树技术和深度优先搜索,就可以直接解决。有关使用相同方法解决几个真实的问题的代码,请参见https://github.com/JamesBremner/obstacles
详情:
- 输入 * 单词列表,每行一个单词,所有字母均为小写a到z
- 输出 * 一个有序的单词列表,使每个单词的首字母(第一个除外)等于前一个单词的末字母。列表中的所有单词都必须使用,每个单词只能使用一次。多次提到的单词必须使用相同的次数。
1条答案
按热度按时间owfi6suc1#
算法:
该算法通常是有用的,并且可以应用于围绕障碍物(例如https://github.com/JamesBremner/obstacles)的路线规划中的问题
下面是实现该算法的代码: