字符串技巧排序

原创 2007年10月15日 20:59:00

排序

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


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

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

 

Input
输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  

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

Output
输出数据也只有一行,是分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开。
 

Sample Input
0051231232050775
 

Sample Output
0 77 12312320

 

 



#include <stdio.h>
#include <string.h>
#define MAX 1001
long a[MAX]={0};
int la=0,lst=0 ;
char c,st[MAX]={'/0'};
long pow_10(int x)
{
     long res=1,i;
     for(i=1 ; i<= x ; i++)
     res *= 10 ;
     return res ;
}
void makerp()
{
     int i,j,rp ;
     la ++ ;
     for(i= 1,j=lst;i<= lst ; i++,j--)
      if ( (rp = st[i]-'0') > 0)
         a[la] += rp*pow_10(j-1) ;
     
}
void sort()
{
     int i,j,t ;
     for(i=1 ; i< la ; i++)
     for(j=i+1 ; j<=la ; j++)
     if (a[j] < a[i])
     {
              t = a[j] ;
              a[j] = a[i] ;
              a[i] = t ;
     }
}

int main(void)
{
    int s=0,t=0;
    int i,j,k ;
   
    while ( ( c=getchar()) != '/n')
    {
          if ( c == '5')
          {
               if ( lst > 0)
               {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
               }
              
               while( (c = getchar()) != '5' && c != '/n')
               st[++lst] = c ;
              
               if ( lst > 0)
               {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
               }
           }
           else if(c != '/n')
           {
               st[++lst] = c ;
           }
        
          if ( c =='/n')
          break ;
     }
   
    if ( lst > 0)
     {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
     }
   
    sort();
   
    
    for(i=1 ; i<= la ; i++)
    printf("%ld ",a[i]);
    printf("/n");
    system("pause");
    return 0 ;
}
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如何把一个字符串按自然数排序输出

直接上代码,各种注释! import java.util.ArrayList; import java.util.Collections; import java.util.LinkedLi...
  • hs2201056
  • hs2201056
  • 2017年03月25日 22:56
  • 582

冒泡排序可以排序多个字符串

在实现多个字符串的排序之前,先来回顾一下冒泡排序: 算法原理: 每次对相邻的两个元素进行比较,若前者大于后者则交换,如此一趟下来最后一个则是最大的一个元素;重复以上步骤,除了已经确定位置的...
  • lemonwxj
  • lemonwxj
  • 2016年04月21日 18:24
  • 1439

十九、字符串排序算法

字母表类一些应用程序可能对字符串的字母表作出限制。在这些应用中,可能常常需要会需要一个API来表示Alphabet类(只是参考,并不会使用该类讨论算法) public class Alphabet ...
  • guanhang89
  • guanhang89
  • 2016年04月25日 10:50
  • 2359

07.将字符串按首字母排序

对汉语拼音排序,对英文排序
  • qq_26872741
  • qq_26872741
  • 2016年03月15日 21:52
  • 1513

常见对象_把字符串中的数字排序案例

package cn.itcast_03; import java.util.Arrays; /* * 我有如下一个字符串:"91 27 46 38 50" * 请写代码实现最终输出结果是:"...
  • L1585931143
  • L1585931143
  • 2016年11月28日 22:46
  • 475

Perl笔记:12、字符串与排序

index 函数 使用方法:index(待检索的字符串,"检索什么",从哪开始检索); 如下: my $string = "hello world!"; my $where = index($stri...
  • lanyanai
  • lanyanai
  • 2013年10月14日 12:54
  • 1258

排序算法总结(包含字符串排序算法)

动画排序算法:http://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html 排序算法真的好多,而且感觉都很好理解,写的时候才...
  • zpp13hao1
  • zpp13hao1
  • 2017年02月09日 10:59
  • 350

初步实现带有数字的字符串的排序(数字区别大小)

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 描述返回值遵循于 问题 对于fss2,fss10,fss1,fss11,fss0...
  • a2241076850
  • a2241076850
  • 2017年01月05日 15:43
  • 314

字符串排序问题

比赛描述: 有一些A、C、M组成的字符串,将其按字符A排序。 输入: 一组测试数据,输入数据由若干行组成,每行是字符A、C或M组成的字符串。(每个字符串长度不超过1200...
  • snchenjt
  • snchenjt
  • 2015年08月11日 17:08
  • 597

JavaScript字符串数组排序

首发:http://windcoder.com/javascriptzifuchuanshuzupaixu/ 完全的字母在前,数字在后,升序排序 方法:冒泡排序,对比每两个字符串的每一个字符。具体的...
  • u011091122
  • u011091122
  • 2015年09月23日 11:39
  • 877
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串技巧排序
举报原因:
原因补充:

(最多只允许输入30个字)