首页 > 试题广场 >

拼接所有的字符串产生字典序最小的字符串

[编程题]拼接所有的字符串产生字典序最小的字符串
  • 热度指数:7138 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的字符串数组 strs ,请找到一种拼接顺序,使得数组中所有的字符串拼接起来组成的字符串是所有拼接方案中字典序最小的,并返回这个拼接后的字符串。

数据范围:
进阶:空间复杂度 , 时间复杂度
示例1

输入

["abc","de"]

输出

"abcde"
示例2

输入

["a","a","b"]

输出

"aab"

备注:

头像 江南好___
发表于 2021-07-18 23:20:49
精华题解 描述 题目描述 给定一个字符串的数组strs,请找到一种拼接顺序,使得所有的字符串拼接起来组成的字符串是所有可能性中字典序最小的,并返回这个字符串。 示例 输入:["abc","de"] 返回值:"abcde"知识点:字符串,数组难度:⭐⭐ 展开全文
头像 不会做题的小菜鸡
发表于 2021-07-18 16:12:54
精华题解 思路 我们知道string类型是重载了比较符的,所以可以直接用比较符进行比较,比较规则就是按字典序。因此我们只需要调用sort函数重载cmp函数指定比较规则即可 方法一:sort重载cmp函数 cmp函数中要规定两字符串的比较规则是: s1 + s2 < s2 + s1保证这样的字典序才 展开全文
头像 棒棒糖🍭201906101800876
发表于 2021-07-16 10:03:10
精华题解 nc85. 拼接所有的字符串产生字典序最小的字符串 1. 思路一: (利用stl) 要想产生字典序最小的字符串, 只需尽量把字典序小的往前放. 所以我们进行一次排序, 将字典序小的排到前面. 但是需要注意的是, 对于两个字符串a和b, 如果直接比较a和b的字典序进行排序, 这样得到的答案将是错误的. 展开全文
头像 超级码力233
发表于 2020-11-26 19:17:08
拼接所有的字符串产生字典序最小的字符串 题目链接 Solution 是拼接后的字符串字典序最小。根据贪心的思路,字典序小的放在前面比较优秀。比如"abc"放到"bca"的前面更好。但是这样有个问题,就是字符串长度的问题,比如"bc""bca"此时应该将字典序大的"bca"放到前面。为了解决此问题,不 展开全文
头像 摸鱼学大师
发表于 2021-07-16 16:24:59
思路: 题目要求将所有的小字符串拼接成大字符串,使大字符串字典序最小,需要主要的有两点: 字符串越小的应该要在越靠前 字符串内部顺序不能动,只能添加连接 因此不是将所有较小的字符串排在前面相加,应该是s1+s2 < s2+s1比较,直接连接。 比如: 方法一:冒泡排序法(超时) 数据量过 展开全文
头像 牛客516598323号
发表于 2020-09-14 16:46:14
往下翻,使用标准答案Pass这题吧。错误答案:思想1,排序字符串组,值从低到高,合并,但是通不过测试。 # # # @param strs string字符串一维数组 the strings # @return string字符串 # class Solution: def minStrin 展开全文
头像 Maokt
发表于 2021-07-29 13:57:23
算法思想一:贪心排序 解题思路: 基本思路: 根据贪心的思路,字典序小的放在前面。比如"abc"放到"bca"的前面更好。 但是这样有个问题,就是字符串长度的问题,比如"bc""bca"此时应该将字典序大的& 展开全文
头像 牛客869693901号
发表于 2022-04-03 19:39:08
注意是字符串拼接起来最小,不是加在一起按字符排序 此题可以用比较函数来实现Python的快排重载 可以用functools的cmp_to_key函数来进行compare(s1, s2)的比较函数转换 from functools import cmp_to_key class Solution: 展开全文
头像 小陆要懂云
发表于 2021-09-02 21:09:08
string minString(vector<string>& strs) { // write code here sort(strs.begin(), strs.end(), [](const string &a,const stri 展开全文
头像 牛客886831005号
发表于 2022-12-23 18:44:03
import java.util.*; public class Solution { /** * * @param strs string字符串一维数组 the strings * @return(756076230) string字符串 */ 展开全文
头像 辣椒酱up
发表于 2024-03-06 10:56:50
class Solution { public: static bool cmp(string a, string b){ // return (a + b) < (b + a); //表示b + a 更大就返回1,表示把b放在前面 if((a 展开全文
头像 Louis201907010812408
发表于 2023-07-22 21:32:05
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 the s 展开全文
头像 fred-coder
发表于 2022-01-25 09:50:55
对字符串数组进行排序,排序规则是两个字符串合并后的排序结果的比较值 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param strs string字符串一维数组 the strings # @return string字符串 # import f 展开全文