zoukankan      html  css  js  c++  java
  • 杭电1106

    WC:

    View Code
     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 string judge(string &s)
     8 {
     9     int i = 0;
    10     for(; i < s.size() && s[i] == '0'; ++i);
    11     string t(s.begin()+i, s.end());
    12     if(i == s.size())
    13         t = "0";
    14     s = t;
    15     return s;
    16 }
    17 void f(string& a, vector<string>& svec)
    18 {
    19     int beg, end;
    20     beg = 0;
    21     for(int i = 0; i < a.size(); ++i)
    22     {
    23         if(a[i] == '5')
    24         {
    25             string t(a.begin()+beg, a.begin()+i);
    26             svec.push_back(judge(t));
    27             while(a[i] == '5')
    28                 i++;
    29             beg = i;
    30         }
    31     }
    32     if(*(a.end()-1) != '5')
    33     {
    34         string t(a.begin()+beg, a.end());
    35         svec.push_back(judge(t));
    36     }
    37 }
    38 bool cmp(string a, string b)
    39 {
    40     int flag = true;
    41     if(a.size() != b.size())
    42         return a.size()<b.size();
    43     else
    44         return a<b;
    45 }
    46 
    47 void out(vector<string> s)
    48 {
    49     cout << s[0];
    50     for(int i = 1; i < s.size(); ++i)
    51         cout << " " << s[i];
    52     cout << endl;
    53 }
    54 int main()
    55 {
    56     string a;
    57     while(cin >> a)
    58     {
    59         vector<string> svec;
    60         f(a, svec);
    61         //out(svec);
    62         sort(svec.begin(), svec.end(), cmp);
    63         out(svec);
    64     }
    65     return 0;
    66 }

    没有考虑到555551这种情况:

    View Code
     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 string judge(string &s)
     8 {
     9     int i = 0;
    10     for(; i < s.size() && s[i] == '0'; ++i);
    11     string t(s.begin()+i, s.end());
    12     if(i == s.size())
    13         t = "0";
    14     s = t;
    15     return s;
    16 }
    17 void f(string& a, vector<string>& svec)
    18 {
    19     int beg, end;
    20     for(beg = 0; a[beg] == '5'; ++beg);//555551
    21     for(int i = beg+1; i < a.size(); ++i)
    22     {
    23         if(a[i] == '5')
    24         {
    25             string t(a.begin()+beg, a.begin()+i);
    26             svec.push_back(judge(t));
    27             while(a[i] == '5')
    28                 i++;
    29             beg = i;
    30         }
    31     }
    32     if(*(a.end()-1) != '5')
    33     {
    34         string t(a.begin()+beg, a.end());
    35         svec.push_back(judge(t));
    36     }
    37 }
    38 bool cmp(string a, string b)
    39 {
    40     int flag = true;
    41     if(a.size() != b.size())
    42         return a.size()<b.size();
    43     else
    44         return a<b;
    45 }
    46 
    47 void out(vector<string> s)
    48 {
    49     cout << s[0];
    50     for(int i = 1; i < s.size(); ++i)
    51         cout << " " << s[i];
    52     cout << endl;
    53 }
    54 int main()
    55 {
    56     string a;
    57     while(cin >> a)
    58     {
    59         vector<string> svec;
    60         f(a, svec);
    61         //out(svec);
    62         sort(svec.begin(), svec.end(), cmp);
    63         out(svec);
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    jsp页面input输入框限制输入内容
    sql计算两个日期之间的相差天数
    sql根据一个字段日期加减7天存入另一字段中
    ajax请求捕获异常
    跨网段和局域网的SQL SERVER发布订阅配置图解和常见问题
    一次得到多个数据集
    SQL Server 2008语句大全完整版
    关于已开票已收款未发货的账务处理
    高格-一些特点话题【7】
    高格-塑料管业中厂内工单,满足随时换料的处理【6】
  • 原文地址:https://www.cnblogs.com/sanghai/p/2996572.html
Copyright © 2011-2022 走看看