python编程题-拼接最小字典序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python编程题-拼接最小字典序相关的知识,希望对你有一定的参考价值。
题目来源:牛客网
对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。
给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。
测试样例:
["abc","de"],2
"abcde"
python
代码
# -*- coding:utf-8 -*- class Prior: def findSmallest(self, strs, n): # write code here resstr = "" for i in xrange(1,len(strs)): for j in xrange(0,i): if(strs[i]+strs[j])<(strs[j]+strs[i]): strs[i],strs[j] = strs[j],strs[i] return ‘‘.join(strs)
shell实现
代码
#/bin/bash #by xianwei #2017-9-4 cat <<EOF 题目 对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。 给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。 测试样例: ["abc","de"],2 "abcde" EOF a=("kid" "yqt" "i" "k") for((i=0;i<${#a[*]};i++)) do for((j=0;j<i;j++)) do if [[ "${a[$i]}${a[$j]}" < "${a[$j]}${a[$i]}" ]] then tmp=${a[$i]} echo $tmp a[$i]=${a[$j]} a[$j]=$tmp fi done done echo ${a[*]}
C++实现
代码
class Prior { public: string findSmallest(vector<string> strs, int n) { // write code here string A; for (int i = 0; i < strs.size();i++) { for (int j = i; j < strs.size(); j++) { if ((strs[i] + strs[j])>(strs[j] + strs[i]))//假如k+kid > kid +k,就交换 swap(strs[i],strs[j]); } } for (int i = 0; i < strs.size(); i++) { A = A + strs[i]; } return A; } };
本文出自 “从运维到开发” 博客,请务必保留此出处http://237085.blog.51cto.com/227085/1962689
以上是关于python编程题-拼接最小字典序的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):数组类:第31题:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列