zoukankan      html  css  js  c++  java
  • 排序 HDU

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

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

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

    输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。 
    Output对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。 
    Sample Input

    0051231232050775

    Sample Output

    0 77 12312320
    用的栈的方法
     1 #include <iostream>
     2 using namespace std;
     3 #include<string.h>
     4 #include<set>
     5 #include<stdio.h>
     6 #include<math.h>
     7 #include<queue>
     8 #include<map>
     9 #include<algorithm>
    10 #include <deque>
    11 #include <iterator>
    12 #include<stack>
    13 stack<int>TM;
    14 int main()
    15 {
    16     char a[1010];
    17     long long b[1010];
    18     while(cin>>a)
    19     {
    20         memset(b,-1,sizeof(b));
    21         int lena=strlen(a);
    22         for(int i=0;i<lena;i++)
    23             TM.push(a[i]-'0');
    24         int t=1;
    25         int add=0;
    26         long long sum=0;
    27         while(!TM.empty())
    28         {
    29             if(TM.top()==5)
    30             {
    31                 t=1;
    32                 add++;
    33                 sum=0;
    34                 TM.pop();
    35             }
    36             else
    37             {
    38                 sum+=TM.top()*t;
    39                 b[add]=sum;
    40                 t*=10;
    41                 TM.pop();
    42             }
    43         }
    44         int flag=1;
    45         sort(b,b+add+1);
    46         for(int j=0;j<=add;j++)
    47         {
    48             if(b[j]==-1)
    49                 continue;
    50                 if(flag)
    51                 {
    52                     cout<<b[j];
    53                     flag=0;
    54                     continue;
    55                 }
    56             cout<<' '<<b[j];
    57         }
    58         cout<<endl;
    59 
    60     }
    61     return 0;
    62 }
    View Code
  • 相关阅读:
    设计模式---了解
    下一阶段目标
    数据结构(七)排序---快速排序
    数据结构(七)排序---归并排序
    数据结构(七)排序---堆排序
    数据结构(七)排序---希尔排序
    数据结构(七)排序---直接插入排序(稳定)
    数据结构(七)排序---简单选择排序
    求助OPC Opc.IDiscovery m_discovery = new OpcCom.ServerEnumerator();
    C#如何:启用和禁用自动绑定重定向 (微软)
  • 原文地址:https://www.cnblogs.com/dulute/p/7272653.html
Copyright © 2011-2022 走看看