阿里巴巴面试题:连接字符串
描述
给定一个字符串列表,你可以将这些字符串连接到一个循环中,在连入循环之前,你可以选择将其反转。在所有可能的循环中,你需要在断开循环之后找到字典序最大的字符串。
具体来说,要找到答案,您需要经历两个阶段:
- 将所有字符串连接到一个循环中,在一个字符串连入循环之前,你可以选择将它反转。但是你需要按照给定的顺序将它们连接起来。
- 在循环的某个位置断开,得到一个正常的字符串。
你的任务是在所有可能得到的字符串中找到字典序最大的一个。
注意,字符串连接顺序以及循环的方向都是从左到右的(即下标增加的方向)。 - 输入字符串只包含小写字母.
- 所有字符串的总长度不会超过1000.
在线评测地址
样例1
输入: ["abc", "xyz"]
输出: "zyxcba"
解释:
你可以得到循环字符串 "-abcxyz-", "-abczyx-", "-cbaxyz-", "-cbazyx-"
其中 "-" 表示循环状态.
答案字符串从第四个字符串中间的字母a剪切得来, 为 "zyxcba"
样例 2
输入: ["awef", "eawf", "zdaeff", "awefzewaf", "awefzewaf"]
输出: "zfewafewafwaezdaefffawezfewafawe"
解题思路
首先, 我们要确定循环字符串是哪个, 然后再枚举断点的位置.
每个字符串有翻转/不翻转的选择, 显然, 我们应该取其中字典序较大的那个连入循环字符串.
但是, 有一个例外, 就

本文分享了一道阿里巴巴算法面试题,题目要求在给定字符串列表中,通过选择反转字符串来构建循环,并寻找字典序最大的字符串。解题思路包括确定循环字符串、枚举断点位置,并在不同情况下选择合适的字符串状态。
最低0.47元/天 解锁文章
1173

被折叠的 条评论
为什么被折叠?



