29.把数组排成最小的数
2016-05-09 19:40
393 查看
把数组排成最小的数
参与人数:2166时间限制:1秒空间限制:32768K
本题知识点: 数组
算法知识视频讲解
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
不难,熟悉了stringstream类的使用,sort的使用,了解了c_str(),str()。
如果把
参与人数:2166时间限制:1秒空间限制:32768K
本题知识点: 数组
算法知识视频讲解
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。不难,熟悉了stringstream类的使用,sort的使用,了解了c_str(),str()。
如果把
if ( num.empty() ) return result ;换成
if ( num.empty() ) return NULL ;会报错。
result.append( vecStr[i] ) ;可以替换为
result += vecStr[i] ;
class Solution { public: static bool compare( const string& t1, const string& t2 ) { string s1 = t1 + t2 ; string s2 = t2 + t1 ; return s1 < s2 ; } string PrintMinNumber(vector<int> num) { string result ; if ( num.empty() ) return result ; vector<string> vecStr ; stringstream ss ; for ( int i = 0; i < num.size(); i++ ) { ss << num[i] ; string tmp = ss.str() ; vecStr.push_back( tmp ) ; ss.str("") ; } sort( vecStr.begin(), vecStr.end(), compare ) ; for ( int i = 0; i < vecStr.size(); i++ ) { result.append( vecStr[i] ) ; } return result ; } };
相关文章推荐
- BufferedOutputStream的缓存功能解析(源码阅读)
- 第十、十一周项目1 - 点-圆-圆柱类族的设计(2)
- Spring声明式事务配置管理方法
- http协议
- Barn Repair
- AndroidStudio 快捷键大全
- Java之Callable Future FutureTask Exectuor使用笔记
- JAVA基础之——深入理解Java的接口和抽象类
- 安卓UI构架解读1
- Dockerfile中CMD与ENTRYPOINT的区别
- thinkphp生成的验证码不显示问题解决
- CentOS下Hive2.0.0集群模式安装详解
- hihoCoder #1040 (判断是否为矩形)
- 安卓中的消息循环机制Handler及Looper详解
- 面向对象(上)知识点
- "open failed: EACCES (Permission denied)"权限已加,写入sd卡仍报错的解决办法
- 使用Docker容器不能忽略的10件事
- asynchttpclient post方法使用
- 安卓中的消息循环机制Handler及Looper详解
- 【Javascript】HTML DOM知识点总结