码迷,mamicode.com
首页 > 编程语言 > 详细

python编程题-拼接最小字典序

时间:2017-09-05 10:08:13      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:python shell 编程练习

题目来源:牛客网

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。

给定一个字符串数组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编程题-拼接最小字典序

标签:python shell 编程练习

原文地址:http://237085.blog.51cto.com/227085/1962689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!