1038. Recover the Smallest Number (30)

来源:互联网 发布:杜夫.龙格尔 知乎 编辑:程序博客网 时间:2024/04/29 03:13

经典面试题

以下关于该解法正确性的详细证明转自何海涛的博客:

 

#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;bool cmp(string a, string b){return a+b < b+a;}int main(){int n;while(scanf("%d",&n)!=EOF){std::vector<string> number(n);for(int i = 0; i < n; ++i)cin>>number[i];//sortsort(number.begin(), number.end(), cmp);//get the first non-zerostring ans;for(int i = 0; i < n; ++i)ans += number[i];int non_zero = -1;for(int i = 0; i < ans.size(); ++i)if(ans[i] != '0'){non_zero = i;break;}if(non_zero == -1)printf("0\n");else {ans = ans.substr(non_zero);cout<<ans<<endl;}}return 0;}


 

 

原创粉丝点击