Description
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

Input
每个测试文件只包含一组测试数据,每组输入数据的第一行输入一个正整数n(n≤20)。 接下来一行输入n个正整数。

Output
对于每组输入数据,输出n个正整数联接成的最大的多位整数。

Sample Input

3 13 312 343

Sample Output

34331213

参考程序(Python实现)

def SortList(ls):res=[]for i in range(len(ls)):m_ind=i#默认当前最“大”元素下标为im=ls[m_ind]#默认当前最“大”元素为ls[m_ind]for j in range(i+1,len(ls)):if m<ls[j]:#在字典序下m<ls[j]if m != ls[j][:len(ls[i])]:#m不是ls[j]的前缀m=ls[j]m_ind=jelse:#m是ls[j]的前缀,那么前len(m)个字符都是一致的,只需比较ls[j]去掉前len(m)个字符#剩下后面几个字符拼接上m 和ls[j]即可if ls[j][len(m):]+m > ls[j]:m=ls[j]m_ind=jelse:passelif m>ls[j]:if ls[j] == m[:len(ls[j])]:#ls[j]是m的前缀,如m='321',ls[j]='3',应该是ls[j]排在前面if m[len(ls[j]):]+ls[j] < m:m=ls[j]m_ind=jls[m_ind],ls[i]=ls[i],ls[m_ind]res.append(m)return reswhile True:try:n=int(input())ls=list(input().split())new=SortList(ls[:])res=""for num in new:res+=numprint(res)except:break

分析:
本题很容易想到的思路是将所有输入数据,当做字符串按照字典序进行排序,然后逆置输出,但这样考虑是不全面的,例如,‘321’和‘32’,按字典序比较,‘321’>‘32’,但这样拼接以后得到的‘32132’却比‘32321’小,所以需要对这类情况单独讨论。
本题输入的数据个数不超过20,所以排序算法并不是很关键。参考程序中使用的是“选择排序”。SortList()函数也可以现根据是不是前缀进行分类,再比较字典序,应该会简洁一些。

数据结构与算法36-联接最大数相关推荐

  1. python算法与数据结构-快速排序算法(36)

    阅读目录 一.快速排序的介绍 二.快速排序的原理 三.快速排序的步骤 四.快速排序的图解 五.快速排序的python代码实现 六.快速排序的C言语代码实现 七.快速排序的时间复杂度 八.快速排序的稳定 ...

  2. python递归编程题_Python数据结构与算法41:递归编程练习题4:铺瓷砖

    注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为8分钟. 递归编程练习题4:铺瓷砖 给定一个长度为N的区域,及4种不同长度的瓷砖:灰瓷砖(长为1格).红瓷 ...

  3. 【算法】常见数据结构基本算法整理

    去年11月份听了牛客网的课,当时做了纸质的笔记整理. 现在为了以后方便查找,将问题目录整理如下. 每道题只提供解题思路,不贴源代码. 可能会稍微手写一下代码(没有在IDE上测,为了试下以后面试时手写代 ...

  4. 数据结构与算法设计思路和考察点

    网上摘录,想分专题放到一起.数据结构常见的问题包括字符串方面.链表的各种操作.树的各种操作,以及各种变形和与其它数据结构的结合使用. 面试题目 字符串专题 1.将字符串转换成整数,将整数转换为字符串, ...

  5. 王道数据结构与算法:完整笔记

    王道数据结构与算法:完整笔记 文章目录 数据结构笔记 第一章 绪论 1.1 基本概念 1.2 数据结构三要素 1.3 算法的概念 1.4 算法效率的度量 第二章 线性表 2.1 线性表的定义和基本操作 ...

  6. Python3-Cookbook总结 - 第一章:数据结构和算法

    第一章:数据结构和算法 Python 提供了大量的内置数据结构,包括列表,集合以及字典.大多数情况下使用这些数据结构是很简单的. 但是,我们也会经常碰到到诸如查询,排序和过滤等等这些普遍存在的问题. ...

  7. 数据结构与算法:22 精选练习50

    精选练习50 马上就要期末考试或者考研了.为了大家复习的方便,我精选了有关数据结构与算法的50道选择题,大家可以抽空练习一下.公众号后台回复"答案"可以获取该50道题目的答案. 0 ...

  8. 数据结构与算法笔记 - 绪论

    数据结构与算法笔记 - 绪论 1. 什么是计算 2. 评判DSA优劣的参照(直尺) 3. 度量DSA性能的尺度(刻度) 4. DSA的性能度量的方法 5. DSA性能的设计及其优化 x1. 理论模型与 ...

  9. Java数据结构和算法(六)——前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

最新文章

  1. 在DWR中实现直接获取一个JAVA类的返回值的两种方法
  2. Android 设置界面的圆角选项
  3. Matlab中vpa一直在忙,matlab数据类型转换遇到问题,及解决办法,sym,double ,vpa转换...
  4. 经典英语1000句(转)
  5. 机器学习算法基础5-线回归与岭回归
  6. String的replaceAll()用法详解
  7. Flink 1.11 新特性之 SQL Hive Streaming 简单示例
  8. 实验记录一 初步接触cortex-M3
  9. Centos系统安装踩坑
  10. 冰点还原无法修改计算机时间,安装冰点还原后无法更改系统时间怎么办
  11. Flink中水位线Watermark
  12. Android Q Data Setup For Long Connection
  13. fuzzy仿真 MATLAB,基于MATLAB的FUZZY控制器的设计和仿真
  14. LeCo-3. 无重复字符的最长子串
  15. 爬虫如何利用session方法保持登陆状态(selenium)
  16. 第二十章 指针 二 为指针分配和释放空间(转)
  17. 小小签到获取签到列表和发送签到数据可弄自动签到
  18. 数据结构 严薇敏 堆 的实现及其使用方法详解
  19. 时差因素!中国地区Win10免费升级于7月30日17:59截止
  20. Mac中Git如何忽略.DS_Store文件

热门文章

  1. 第三方网站不能调用微信公众平台里的图片了 显示此图片来自微信公众号平台未经允许不可引用...
  2. 云平台-多租户技术设计
  3. 如何删除tmp计算机桌面,win10系统下tmp临时文件删除不了像何解决
  4. 三维空间中直角坐标与球坐标的相互转换
  5. 软件测试方法进行调优,一种大型软件测试方法
  6. 2.GSAP(TweenMax手册/TweenLite手册)之一
  7. shapely包的使用
  8. Elasticsearch7.12常用操作总结
  9. java 让坦克移动_坦克大战_坦克移动
  10. c语言程序输出s是什么,C语言中printf格式化输出函数