首页 > 其他分享 >PAT_A 1038 Recover the Smallest Number

PAT_A 1038 Recover the Smallest Number

时间:2023-10-19 10:26:08浏览次数:156  
标签:3214 int 32 number 1038 Smallest Recover 321 87

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.

Input Specification:

Each input file contains one test case. Each case gives a positive integer N (≤104) 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.

Output Specification:

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

Sample Input:

5 32 321 3214 0229 87

Sample Output:

22932132143287
#include<bits/stdc++.h>
using namespace std;
const int N = 10000+5;
int n;
string s[N], r;
bool mycmp(string a, string b){
	return a+b < b+a;
}
int main(){
	cin>>n;
	for(int i = 0; i < n; i++) cin>>s[i];	
	sort(s, s+n, mycmp);
	for(int i = 0; i < n; i++) r += s[i];	
	while(r.size()!=0 && r[0]=='0') r = r.substr(1);
	r.size()==0? cout<<0<<endl : cout<<r<<endl;
	return 0;
}

总结
1、 #贪心 对数字串s1、s2,如果s1+s2 < s2+s1(+代表拼接),那么把s1放在s2的前面。
2、二维char数组排序较麻烦,这里用string。
3、考虑前缀去0后r为空的情况,此时输出0。

标签:3214,int,32,number,1038,Smallest,Recover,321,87
From: https://www.cnblogs.com/Afinis/p/17774086.html

相关文章

  • [gym103860D]Tree Partition
    D-TreePartition考虑将树转换到一个序列上,钦定\(1\)为根节点,\(1\)的父亲为\(0\),在序列上,孩子向父亲连边然后考虑设\(dp\)状态\(dp[i][j]\)表示前\(i\)个点,分成\(j\)段的方案数,那么\(dp[i][j]\)从\(dp[k][j-1]\)转移过来要满足以下条件之一:点\(i\)的后向边\((a,b)\)满足\(a\l......
  • 【UVA 536】Tree Recovery 题解(根据遍历序列还原二叉树)
    小瓦伦丁非常喜欢玩二叉树。她最喜欢的游戏是随机构建查找节点中带有大写字母的二叉树。这是她创作的一个例子:为了给后代记录她的树,她为每棵树写下了两个字符串:预订单遍历(根、左子树、右子树)和有序遍历(左子树、根、右子树。对于上面绘制的树,预序遍历是DBACEGF,有序遍历是ABCDEFG......
  • CF1710D Recover the Tree
    题目链接一个比较显然的思路就是:我们按照右端点从小到大的顺序(右端点相同按左端点从大到小)去考虑每个好的区间。由于是连通性问题,不难想到用并查集去实时维护连通性。根据定义,一个好的区间必定对应了一个连通块;我们考虑的是好的区间,所以当前并查集中的每个连通块必定都是一个区......
  • 数据恢复神器EaseUSDataRecovery数据恢复软件技术终身版免费下载
    EaseUSDataRecovery数据恢复软件免费版是一款优秀的数据恢复工具,可以帮助我们找回因各种原因丢失的数据。如果您正在被数据丢失问题所烦恼,请立刻免费下载数据恢复软件,开始进行数据恢复吧。数据恢复软件终身版本数据恢复软件免费版可以帮助用户找回因删除、格式化、分区丢失、分区损......
  • 易我数据恢复EaseUS Data Recovery Wizard 16.0技术员终身版你的数据恢复神器
    易我数据恢复EaseUSDataRecoveryWizard16.0技术员终身版为全球提供数据恢复方案,用于误删数据数据,电脑误删文件恢复,格式化硬盘数据恢复、手机U盘数据恢复等。RAID磁盘阵列数据恢复,分区丢失及其它未知原因丢失的数据恢复、简单易用轻松搞定数据恢复。EaseUSDataRecoveryWizar......
  • MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响
    MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响起因在GreatSQL社区上有一位用户提出了“手工构建MGR碰到的次节点一直处于recovering状态”,经过排查后,发现了是因为新密码验证插件caching_sha2_password导致的从节点一直无法连接主节点,帖子地址:(https:/......
  • SMON: Parallel transaction recovery tried
    这个一般是在具有在跑大数据量的transaction的时候kill掉了进程而导致smon去清理回滚段时导致的。这个在业务高峰期的时候,如果发现这个,有可能导致SMON占用了100%cpu而导致系统hang在那边。即使你shutdownimmediate,Oracle也会等待smon清理完毕才能关机,而这个等待过程......
  • Failed to transform tygerservice-1.0.0.210619103852.aar to match attributes
    Couldnotresolveallfilesforconfiguration':app:debugRuntimeClasspath'.ExecutionfailedforAarToClassTransform:C:\Users\Administrator\.gradle\caches\transforms-2\Failedtotransformtygerservice-1.0.0.210619103852.aartomatchattrib......
  • easyrecovery 2023年最好用的数据恢复软件
    EasyRecovery是一款操作简单、功能强大数据恢复软件,通过easyrecovery可以从硬盘、光盘、U盘、数码相机、手机等各种设备中恢复被删除或丢失的文件、图片、音频、视频等数据文件。easyrecovery数据恢复软件,是国内顶尖工作室的技术杰作。它是一个硬盘数据恢复工具,能够帮你恢复丢失的......
  • Recovery下显示本地化文字分析
    在本文中我们主要分析google在recovery中根据地区信息(locale)的不同,来显示国际化文字的机制。在recovery下进行升级时,不论是ota升级还是sideload升级方式,如果当前系统区域设置为中文,在进度条上面就会看到“正在安装系统更新…”这几个字,如果改变系统的区域,在这种情况下会看到下......