分值 : 30 难度 : 中等题 思路 : 排个序,而A B谁在前面排序方式就按照 A+B 和 B+A去比较排序 坑点 : 解法较为巧妙,还有就是前面的 ‘0’ 要去除完 评语 : 想到就很简单,30分的题 25行代码就完事
12345678910111213141516171819202122232425
#include <iostream>#include <algorithm>using namespace std ;string s[10001] ;bool cmp(string a , string b ){ return a+b < b+a ;}int main() { int N ; cin>> N ; for(int i = 0 ; i< N ; i++) cin >>s[i] ; sort(s,s+N ,cmp) ; string answer ; for(int i= 0 ; i< N ; i++) answer += s[i] ; int cur = 0 ; while(answer[cur++] == '0'); if(cur-1==answer.size()) cout <<"0"<<endl ; else cout << answer.substr(cur-1)<<endl ; return 0 ;}