hdu 1106

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char a[1000+10];
int num[1000+10];
int main()
{
    int i,j;
    int l,r;
    while(scanf("%s",a)!=EOF)
    {
        memset(num,0,sizeof(num));
        int cnt=0;
        l=0;r=0;
        int len=strlen(a);
        int begin=0;
        while(a[begin]==‘5‘) begin++;
        l=begin;
        for(i=begin;i<len;i++)
       {
           if(a[i]==‘5‘)
           {
               int wei=1;
               r=i-1;
               for(j=r;j>=l;j--)
              {
                num[cnt]+=((a[j]-‘0‘)*wei);
                wei*=10;
              }
               cnt++;
               l=i;
               while(a[l]==‘5‘) {l++;i++;}
           }
           if(i==len-1)
           {
               int wei=1;
               r=i;
               for(j=r;j>=l;j--)
              {
                num[cnt]+=((a[j]-‘0‘)*wei);
                wei*=10;
              }
               cnt++;
           }
       }
       sort(num,num+cnt);
       for(i=0;i<cnt;i++)
       {
           printf("%d",num[i]);
           printf("%c",i==cnt-1?‘\n‘:‘ ‘);
       }
    }
    return 0;
}

  

时间: 2025-01-10 05:37:38

hdu 1106的相关文章

HDU 1106 排序 其实是字符串分割

Problem Description 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000. 输入数据保证:分割得到的非负整数不会大于100000000:输入数据不可能

Hdu 1106 排序 (atoi函数与 strtok函数的应用

链接: http://acm.hdu.edu.cn/showproblem.php?pid=1106 好久都没刷题了,今天突然特别怀念以前刷题的日子,所以就找了几道水题来做做~~呵呵 在写这篇博客之前呢,已经很明了自己已经大三了,时光匆忙,在还没来得及转过头来,就已经过了两年了大学,原来走了这么远了~~感觉再怎么样,大三还是不敢偷懒~~不过有时候还真是挺迷茫的说实话,在这里呢,真心希望能得到你们各位的建议,只要是对我未来就业有好处的,我都会虚心取纳,(BTW:我是学嵌入式方向的)万分感谢~~~

hdu 1106 排序(水题)

题目描述: 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. 输入: 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000.输入数据保证:分割得到的非负整数不会大于100000000:输入数据不可能全由'5'组成. 例如:005123

HDU 1106 排序 (排序+处理字符串)

题意:略. 析:按照题目说的,把字符串分割,然后把字符串转成十进制,存起来,可以用数组,我用的向量, 排序一下就OK了.注意的是,要考虑多个5相邻的时候,刚开始没考虑WA了一次. 代码如下: #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <cstring> #include &

HDU 1106 排序

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41909    Accepted Submission(s): 12014 Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由

HDU 1106 排序 题解

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 38192    Accepted Submission(s): 10819 Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由

hdu 1106 水

背景:简单字符串处理,虽然有点绕. #include<cstdio> #include<iostream> #include<cstring> #include<queue> #include<algorithm> using namespace std; int ans[510]; char str[1009]; int main(void){ while(~scanf("%s",str)){ memset(ans,0,si

HDU 1106 排序。。

排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36504    Accepted Submission(s): 10336 Problem Description 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是

HDU 1106 排序 字符串模拟

Problem Description 输入一行数字,如果我们把这行数字中的'5'都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000. 输入数据保证:分割得到的非负整数不会大于100000000:输入数据不可能