首页 > 代码库 > PAT 1038. Recover the Smallest Number
PAT 1038. Recover the Smallest Number
#include <iostream>#include <cstdlib>#include <vector>#include <algorithm>using namespace std;bool mycmp(const string& a, const string& b) { string ta = a + b; string tb = b + a; int len = ta.length(); for (int i=0; i<len; i++) { if (ta[i] > tb[i]) { return false; } else if (ta[i] < tb[i]){ return true; } } return true;}bool print_no_leading_zero(string &n) { int len = n.length(); bool full_zero = true; int i; for (i=0; i<len; i++) { if (n[i] != ‘0‘) { full_zero = false; break; } } while (i<len) { cout<<n[i++]; } return full_zero;}int main() { string is; int N = 0; cin>>N; vector<string> segs(N); for (int i=0; i<N; i++) { cin>>segs[i]; } int len = segs.size(); sort(segs.begin(), segs.end(), mycmp); bool zero = true; if (len > 0) { for (int i=0; i<len; i++) { if (zero) { zero = print_no_leading_zero(segs[i]); } else { cout<<segs[i]; } } } if (len < 1 || zero) { cout<<0; } cout<<endl; return 0;}
要不是以前做过还是想不到的
PAT 1038. Recover the Smallest Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。