关闭

hdu1106 排序 (分割字符串)

标签: hdu1106hdu 1106排序
1324人阅读 评论(0) 收藏 举报
分类:

排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 41253    Accepted Submission(s): 11824


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

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

 

Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
 

Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
 

Sample Input
0051231232050775
 

Sample Output
0 77 12312320
 

Source
 

Recommend
Eddy   |   We have carefully selected several similar problems for you:  1108 1201 1040 1280 1236 
 

#include <stdio.h>
#include <queue>
#include <string.h>
using namespace std;
int main()
{
    priority_queue<long long,vector<long long >,greater<long long> > s;
    char str[1005];
    int len,flag;
    long long sum;
    while(scanf("%s",str)!=EOF)
    {
        len=strlen(str),sum=flag=0;
        for(int i=0;i<len;i++)
        {
            
            if(str[i]!='5')
            sum=sum*10+str[i]-'0',flag=1;
            if((str[i]=='5'||i==len-1)&&flag)
            s.push(sum),sum=flag=0;    
        }
        if(!s.empty())
        printf("%lld",s.top()),s.pop();
        while(!s.empty())
        printf(" %lld",s.top()),s.pop();
        printf("\n");
        memset(str,0,sizeof(str));
    }
    return 0;
}


1
0
查看评论

HDU1106 排序【字符串+整数+排序】

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 64208   ...
  • tigerisland45
  • tigerisland45
  • 2016-05-08 09:05
  • 1245

HDU1106 排序(解法二)(废除!!!)

本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序【字符串+整数+排序】。 问题链接:HDU1106 排序。 问题简述:参见上述链接。 问题分析:这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。 程序说明:程序中,使用C语言的库函数...
  • tigerisland45
  • tigerisland45
  • 2016-06-16 06:09
  • 906

hdu1106——排序

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 45588  ...
  • qq_33110317
  • qq_33110317
  • 2016-01-09 22:49
  • 151

HDU1106:排序

Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。 你的任务是:对这些分割得到的整数,依从小...
  • libin56842
  • libin56842
  • 2013-01-15 23:03
  • 1235

HDU1106——排序

http://acm.hdu.edu.cn/showproblem.php?pid=1106思路:要注意前5,中间连5和后5的情况。其他的和精度运算得出操作数的方式相似。#include#include#includeusing namespace std;struct S{ char m[1...
  • tlovet1314
  • tlovet1314
  • 2010-02-22 10:15
  • 1492

hdu1106排序

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33638  ...
  • sibangde
  • sibangde
  • 2014-07-12 11:40
  • 370

HDU1106 排序

#include #include #include using namespace std; int main() {     char str[1001];     int num[1001],i,j;     w...
  • AC_Gibson
  • AC_Gibson
  • 2014-09-12 21:00
  • 281

hdu1106 排序

Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。 你的任务是:对这些分割得到的整数,依...
  • sinat_39591298
  • sinat_39591298
  • 2017-09-29 20:09
  • 81

Hdu1106排序

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1106 此题略坑错了好几次  注意开头和结尾多个5的情况 提供几组数据 500 0 0 512351245 123 124 55123 123 5512350 0 ...
  • x_xueting
  • x_xueting
  • 2017-08-02 16:53
  • 48

HDU1106 排序

G - 排序 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...
  • zf______
  • zf______
  • 2015-07-19 23:08
  • 178
    个人资料
    • 访问:1431281次
    • 积分:21114
    • 等级:
    • 排名:第442名
    • 原创:602篇
    • 转载:18篇
    • 译文:0篇
    • 评论:377条
    你只管努力 其它交给时光

    点图片联系我


    唐唐女神

    点图片联系我

    访问统计
    Flag Counter
    博客专栏
    最新评论