zoukankan      html  css  js  c++  java
  • hdu 1106 排序

    排序

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


    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:  1236 1391 1029 1862 1209 
     
    字符串问题,分成一个个数字的时候要考虑一些特殊的数据,如连续出现两个5,开头是5,或者结尾是5等等特殊的情况。
     
    题意:中文题,很好理解。
     
    附上代码:
     
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 int main()
     7 {
     8     int i,j;
     9     char ch[1005];
    10     int a[1005];
    11     while(~scanf("%s",ch))
    12     {
    13         int len=strlen(ch);
    14         int m=0,n=0;
    15         for(i=0; i<len; i++)
    16         {
    17             if(ch[i]!='5')
    18                 m=m*10+ch[i]-'0';
    19             else
    20             {
    21                 if(ch[i-1]!='5'&&i!=0)  //不可以是连续出现的5,也不可以第一个数字是5
    22                 {
    23                     a[n++]=m;
    24                     m=0;
    25                 }
    26                 else
    27                     m=0;
    28             }
    29         }
    30         if(ch[len-1]!='5')  //判断最后一个数字是否是5,若不是,则需要存入数组
    31         {
    32             a[n]=m;
    33             sort(a,a+n+1);
    34             for(i=0; i<=n; i++)
    35             {
    36                 if(i!=0)
    37                     printf(" ");   //输出格式,最后一个数没有空行
    38                 printf("%d",a[i]);
    39             }
    40         }
    41         else     //最后一个数是5,则不需要考虑
    42         {
    43             sort(a,a+n);
    44             for(i=0; i<n; i++)
    45             {
    46                 if(i!=0)
    47                     printf(" ");
    48                 printf("%d",a[i]);
    49             }
    50         }
    51         printf("
    ");
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    OCM_Session7_8_分区,并使用udev来配置裸设备
    OCM_Session7_7_VBOX配置共享存储
    OCM_Session7_6_配置oracle用户ssh对等性
    OCM_Session7_5_修改/etc/security/limits.conf和 /etc/pam.d/login和/etc/profile
    OCM_Session7_4_修改内核配置文件/etc/sysctl.conf
    OCM_Session7_3_修改 oracle 用户的初始化参数文件,建路径
    OCM_Session7_2_创建组,用户,设置用户密码
    OCM_Session7_1_配置/etc/hosts
    OCM_Session7_0_准备工作,确定hostname和ip地址
    OCM_Session7_0_CRS-0223
  • 原文地址:https://www.cnblogs.com/pshw/p/4817559.html
Copyright © 2011-2022 走看看