解题思路
这个题目理解起来可能比较难,但是代码写起来简单!首先就是考虑要按字典序将这些字符串排序,但发现32,321,3214这些数前后位置不一样的话数字大小不确定。所以就要判断两个字符串数前后位置变化哪个更小!排序后将字符串拼接,并去掉前导零即可。
注意
sort函数的cmp非常强大!就是直接根据a+b<b+a来排序,这样每两个字符串数拼接后,最终都会比两个数交换位置后的数要小!
代码
1 |
|
这个题目理解起来可能比较难,但是代码写起来简单!首先就是考虑要按字典序将这些字符串排序,但发现32,321,3214这些数前后位置不一样的话数字大小不确定。所以就要判断两个字符串数前后位置变化哪个更小!排序后将字符串拼接,并去掉前导零即可。
sort函数的cmp非常强大!就是直接根据a+b<b+a来排序,这样每两个字符串数拼接后,最终都会比两个数交换位置后的数要小!
1 | #include <iostream> |
本文标题:PAT A1038 Recover the Smallest Number
文章作者:GavinYGM
发布时间:2020年08月31日 - 01:08
最后更新:2020年08月31日 - 01:08
原始链接:http://www.gavinygm.cn/2020/08/31/PAT-A1038-Recover-the-Smallest-Number/
许可协议: 转载请保留原文链接及作者。