字符串矢量排序
String vector sorting
我很少使用排序和算法,对向量也没问题。最近我遇到了一个有趣的问题,希望你能给我一些解决问题的建议。
Q、 我在一个向量中得到了4个字符串,必须根据这些字符的具体顺序来排列它们。因此,任何字符串的最后一个字符都应该与任何其他字符串的第一个字符匹配,这个字符串的最后字符应该与任何其它字符串的第一字符匹配,这样我就必须创建一个尽可能长的字符串。
例如,如果我有一个字符串向量,如"ABCD"TGHI"DADC"IYUR"CXYT"所以它会像"ABCD"那样排列,然后会有第三个字符串"DADC",然后是第五个字符串"CXYT",依此类推因此,结果将是"ABCD"DADC"CXYT"TGHI"IYUR"。
现在,我想知道根据上面的规则,如果每个字符串是"兼容的",那么将每个字符串与其他字符串进行检查是否是个好主意。。如果我在向量中有5个字符串,那么我有5+4+3+2+1的可能性,如果我有20个字符串,它会增加很多,这是个好主意吗,或者有其他有效的解决方案吗。。。非常感谢,希望(大部分)你能理解。
将每个字母想象成图中的一个节点。每个单词代表中两个字母之间的定向通路。"ACCA"定义a->a"BAAC"B->C。在此图中,您希望找到一条欧拉路径。http://en.wikipedia.org/wiki/Eulerian_path。欧拉路径被定义为访问每条边一次的路径,因为每条边代表一个单词,意味着你已经使用了所有单词!
更好的方法可能是使用字符串构建有向图。如果s1
的最后一个字符与s2
的第一个字符相同,则从字符串s1
到字符串s2
将有一条边。然后你可以试着在图中找到最长的路径。
相关文章:
- 提高从排序字符串中获取字母顺序的顺序复杂性
- C 在向量的向量中按字母顺序排序字符串
- 在排序字符串向量中进行有效搜索
- C 选择排序字符串数组
- C 排序字符串的动态阵列 - 排序不起作用
- C++:使用 LSD 基数排序字符串排序崩溃
- 标准::排序 C 字符串的比较函数
- 使用最小运算将给定字符串转换为排序字符串
- C++ - 链表插入排序(字符串元素)
- 分段错误(核心转储)排序字符串数组错误
- 比较函数用于排序字符串的矢量(每个字符串都是一个数字)C++
- std::mutiset vs std::vector,用于读取排序字符串并将其写入文件
- 按字母顺序快速排序字符串矢量
- C++按字母顺序排序字符串
- 按长度排序字符串数组
- 我如何使用c++库函数或STL排序字符串
- 首先按字符排序字符串
- 如何按ASCII顺序排序字符串
- 按字母顺序排序字符串数组
- 按降序排序字符串