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;
    }
};
时间: 2024-10-14 04:04:25

python编程题-拼接最小字典序的相关文章

拼接最小字典序

转载请标明出处http://www.cnblogs.com/haozhengfei/p/63b2460bceae42e55f0c2d150bde663b.html 拼接最小字典序 拼接最小字典序练习 第8节 拼接最小字典序练习题 对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的. 给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串. 测试样例: ["abc","de"],2 "abcde

[PHP]算法-拼接最小字典序的实现

拼接最小字典序: 给定一个字符串类型的数组strs,请找到一种拼接顺序,使得将所有字符串拼接起来组成的大字符串是所有可能性中字典顺序最小的并放回这个大字符串. 思路: 1.字典序,12345这五个数,按不同的顺序排列,所有的排列中最前面的是12345,最后面的是 54321. 2.使用比较函数usort(arr,'costomcomp'),自定义比较大小的函数,costomcomp(a,b) return a+b > b+a 3.str_split 单个字符串转数组 4.字符转ascii ord

字符串练习题(五):拼接最小字典序

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的. 给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串. 测试样例: ["abc","de"],2 "abcde" public class Prior { public String findSmallest(String[] strs, int n) { // write code here Arrays.sort(strs,

随手练——拼接最小字典序

没有找到OJ题目. 第一眼想到的一般都是按字典序从头到尾依次. b,ba按这个思想排出来,是bba,但其实最小的是bab,就要改一下比较策略了,改成拼接之后,比较谁小. int cmp(string s1,string s2) { return s1 + s2 < s2 + s1 ? 1 : 0; } 完成代码: #include <iostream> #include <string> #include <algorithm> #include <vect

python编程题-句子的逆序

对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序. 给定一个原字符串A和他的长度,请返回逆序后的字符串. 测试样例: "dog loves pig",13 返回:"pig loves dog" python实现 class Reverse:     def reverseSentence(self, A, n):         # write code here         Alis

python 编程题

[1]用python实现9*9乘法表 1 or i in range(1,10): 2 for j in range(1,i+1): 3 print("%d*%d=%2d" % (i,j,i*j),end=" ") 4 print (" ") 原文地址:https://www.cnblogs.com/Jiangchuanwei/p/8495496.html

HDU 1814 Peaceful Commission(2-sat 模板题输出最小字典序解决方式)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1814 Problem Description The Public Peace Commission should be legislated in Parliament of The Democratic Republic of Byteland according to The Very Important Law. Unfortunately one of the obstacles is t

HDU 1814 Peaceful Commission(2-sat 模板题输出最小字典序解)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1814 Problem Description The Public Peace Commission should be legislated in Parliament of The Democratic Republic of Byteland according to The Very Important Law. Unfortunately one of the obstacles is t

腾讯2017年暑期实习生编程题【有趣的数字】Python

有趣的数字 时间限制:1秒 空间限制:32768K 题目描述: 小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢? 输入描述: 输入包含多组测试数据. 对于每组测试数据: N - 本组测试数据有n个数 a1,a2...an - 需要计算的数据 保证: 1<=N<=100000,0<=ai<=INT_MAX. 输出描述: 对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数. 输入示例: 6 45 12 45 32 5