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 }
  • 相关阅读:
    andorid(3) 使用sqllite进行数据持久化
    android(1)--hello world中的layout与 onCreate()
    android(2)--listView
    linux 常用指令
    关于虚拟内存、驻留内存与共享内存——virt res shr之间的关系
    base64 和 md5
    python阿里云短信服务
    python邮件发送
    算法
    python3 字典
  • 原文地址:https://www.cnblogs.com/sanghai/p/2996572.html
Copyright © 2011-2022 走看看