A1038 Recover the Smallest Number (30分)【C语言】_recover the smallest number c语言-程序员宅基地

A1038 Recover the Smallest Number (30分)【C语言】

原题链接

用到了好多字符串的功能哦…

题目描述:
Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given { 32, 321, 3214, 0229, 87 }, we can recover many numbers such like 32-321-3214-0229-87 or 0229-32-87-321-3214 with respect to different orders of combinations of these segments, and the smallest number is 0229-321-3214-32-87.

输入格式:
Each input file contains one test case. Each case gives a positive integer N (≤10 ​4​​ ) followed by N number segments. Each segment contains a non-negative integer of no more than 8 digits. All the numbers in a line are separated by a space.

输出格式:
For each test case, print the smallest number in one line. Notice that the first digit must not be zero.

输入样例:

5 32 321 3214 0229 87

输出样例:

22932132143287

实现代码:

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
const int maxn = 10010;
string str[maxn];
bool cmp(string a, string b){
    
	return a+b < b+a; //若不等式成立,则a排在b前面 
}

int main()
{
    
	int n;
	cin >> n;
	for(int i=0; i<n; ++i){
    
		cin >> str[i];
	}
	sort(str, str+n, cmp);
	string ans; //结果字符串
	for(int i=0; i<n; ++i){
    
		ans += str[i]; //将排序后的数字串进行拼接 
	} 
	while(ans.size()!=0 && ans[0]=='0'){
    
		ans.erase(ans.begin()); //去除前导0 
	}
	if(ans.size()==0) cout << 0; //去除前导0后为空,输出0 
	else cout << ans; //否则输出结果字符串 
	
	return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SASAKI_130/article/details/106878979

智能推荐

Qt知识点总结_qt知识分享-程序员宅基地

文章浏览阅读1.9k次,点赞5次,收藏37次。QT提供了一些机制来保证线程安全,如互斥量(QMutex)、信号量(QSemaphore)和读写锁(QReadWriteLock)。这些机制可以在多线程环境下实现数据的同步访问和线程间的协调。_qt知识分享

spark原理简介_spark技术原理-程序员宅基地

文章浏览阅读773次。spark简介以及原理spark简介 spark是基于内存的分布式处理框架,它把要执行的作业拆分成多个任务,然后将任务分发到多个CPU进行处理,处理结果的中间数据存储在内存中,减少了数据处理过程中对硬盘的I/O操作,大大提升了处理效率。spark和MapReduce对比 spark相对于mr,性能上提高了100倍。 &_spark技术原理

大数据Hadoop入门_hadoop只用一个账户能启动-程序员宅基地

文章浏览阅读4.6k次,点赞4次,收藏34次。先安装好vmware并且创建一台虚拟机,IP和主机名配置1.点击vmware的“编辑” =>虚拟网络编辑器(N)...2.点击“VMnet8"后点击”更改设置“3.而后再次点击VMnet8,修改子网IP地址为:192.168.10.0(IP可以任意取值只要不为192.168.1.0即可)4.修改完成后,点击NAT设置,将网关的地址修改与子网IP在同一网段。这里网关IP设置为192.168.10.2 ;随后点击确定=>确定5.配置主机的IP,网..._hadoop只用一个账户能启动

LM series vertical grinding mill complete system of professional choice-程序员宅基地

文章浏览阅读82次。LM series verticalroller mill machine is widely absorb the advanced technology in thefoundation of internat..._lm coal mill

概念理解:面向对象编程(OOP)-程序员宅基地

文章浏览阅读49次。一、对象的综述面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。所有编程语言的最终目的都是解决企业又或者人在现实生活中所遇到的问题,最初我们..._咋样理解面向对象编程 -baijiahao

C语言之makefile简介及简单应用_c makefile-程序员宅基地

文章浏览阅读963次。其实makefile最大的优点就是提供了”自动编译”,只要内容编写好,一个make命令,整个工程就会自动编译程序,大大提高了软件开发的效率。 所以 会使用makfile还是一个很重要的技能哦!!!make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生..._c makefile

随便推点

spring-搭建web项目_spring搭建web项目-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏6次。spring-搭建web项目1.创建maven,web项目2.加入依赖3.拷贝ch07-spring-mybatis中的代码和配置文件4.创建一个jsp发起请求,有参数id,name,email,age。5.创建Servlet,接收请求参数,调用Service,调用dao完成注册6.创建一个jsp作为显示结果的页面1.之前做的是javase项目有main方法的,执行代码是执行main方法的,在main里面创建的容器对象。ApplicationContext ctx = new ClassPathXml_spring搭建web项目

ROS安装过程sudo rosdep init+rosdep update出现错误:'The read operation timed out'_error: no data sources in /etc/ros/rosdep/sources.-程序员宅基地

文章浏览阅读3.6w次,点赞11次,收藏43次。1.问题描述:***@***:~$ rosdepupdatereadingin sources list data from /etc/ros/rosdep/sources.list.dERROR:unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebre..._error: no data sources in /etc/ros/rosdep/sources.list.d

ls路由算法_计算机网络之链路状态路由选择算法(LS)-程序员宅基地

文章浏览阅读2.8k次。一、准备知识链路状态路路由选择算法是一种全局式路由选择算法。在此算法中,我们是假设所有网络拓扑和链路费用都是已知的(实践中通常是通过让每个结点向网络中所有其他节点广播链路状态分组来完成的)【OSPF协议】,通过节点广播使所有结点具备了该网络等同的完整视图。获得视图之后,通过LS算法可以计算出从源节点到网络任意结点的最低费用路径。.我们下面给出的链路状态路由选择算法叫做Dijkstra算法,在了解此..._ls路由

个人永久性免费-Excel催化剂功能第59波-快速调用Windows内部常用工具命令-程序员宅基地

文章浏览阅读60次。Windows里一些常用的工具、命令,许多存放得很深的位置,不容易找到,每次还要百度半天才能调用成功,Excel催化剂现将常用的操作,提取至插件中完成,一键即可调出相应功能,无需苦苦找寻。使用场景每每需要对Windows系统作一些设置时,不同的Windows版本设置菜单位置不一样,特别是现在的Win10坑爹地很,更难找到,用熟一个系统,跳到其他系统又找一大轮,微软这德性还..._excel 调用windows命令

leetcode 509.斐波那契数 C语言 动态规划_动态规划求解斐波那契数列c语言-程序员宅基地

文章浏览阅读1.2k次。题目读题从第三项开始,每一项是前两项的和,给定数n,求F(n)。列出前五项 F(0) F(1) F(2) F(3) F(4) F(n) 0 1 1 2 3 F(n-1)+F(n-2) 1+0 1+1 2+1 运用动态规划设计状态:从第三项开始每一次求第n项都转移到求n-1项和n-2项写出状态转移方程:F(n)=F(n-1)+F(n-2_动态规划求解斐波那契数列c语言

Windows下安装Hive(包安装成功)_windows安装hive-程序员宅基地

文章浏览阅读5.1k次,点赞12次,收藏28次。Hive 的Hive_x.x.x_bin.tar.gz 高版本在windows 环境中缺少 Hive的执行文件和运行程序。配置文件目录(%HIVE_HOME%\conf)有4个默认的配置文件模板拷贝成新的文件名。可以发现,自动连接MySQL去创建schema hive,并执行脚本。可以通过访问namenode和HDFS的Web UI界面(以及resourcemanager的页面(先在Hive安装目录下建立。根据自己的Hive安装路径(根据自己的Hive安装路径(请严格按照版本来安装。在Hadoop管理台(_windows安装hive