HDU 1106字符串处理

来源:互联网 发布:电脑专业录音软件 编辑:程序博客网 时间:2024/06/02 15:44

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1106

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出

输入:

0051231232050775
输出:
0 77 12312320
思路:
将字符串分割成多个整数,然后排序一下。
#include<iostream>#include<string.h>#include<algorithm>using namespace std;int main(){    char a[1005]; int b[1005];    while (cin >> a)    {        memset(b, 0, sizeof(b)); int i, j = 0; bool flag;        for (i = 0;i<strlen(a); i++)        {            flag = 0;//标志是否有新的数字生成            while (a[i] != '5'&&a[i]!='\0')            {                b[j] = b[j] * 10 + (a[i]-'0');                i++;                flag = 1;            }            if(flag)            j++;        }        sort(b, b + j);        for (i = 0; i < j; i++)        {            if (i == 0)                cout << b[i];            else                cout << " " << b[i];        }        cout << endl;    }    return 0;}


原创粉丝点击