排序

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

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

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

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

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

 
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
 
Sample Input
0051231232050775
 
Sample Output
0 77 12312320
低级做法:
使用字符串保存数据,设置一个保存数字的数组,再一个个字符遍历过去,把字符添加到对应的数字数组的位置。(注意:这种做法要分是不是以字符“5”结尾)

#include <stdlib.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
long long int a[1005];
int main()
{
char ch[1005];
while(scanf("%s",ch)!=EOF)
{
memset(a,0,sizeof(a));
int len=strlen(ch),k=0,flag=1;
for(int i=0; i<len; i++)
{
if(ch[i]=='5'&&flag==0)
{
k++;
flag=1;
}

else if(ch[i]!='5')
{
flag=0;
a[k]=a[k]*10+ch[i]-'0';
}
}
if(ch[len-1]=='5')
{
sort(a,a+k);
for(int i=0; i<k-1; i++)
{
printf("%lld ",a[i]);
}
printf("%lld\n",a[k-1]);
}
else
{
sort(a,a+k+1);
for(int i=0; i<k; i++)
{
printf("%lld ",a[i]);
}
printf("%lld\n",a[k]);
}

}
return 0;
}

高级一点的:

使用strtok   和   atoi函数

strtok函数是将字符串按所给的字符分开的函数(注意:使用一次之后要归NULL   它会自动指向下一个分的块)

atoi  是一个将字符串的数据改成整形数据的函数   具体的可以百度一下

#include <stdlib.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n,num;
int a[1100];
char ch[1100],*p;
while(scanf("%s",ch)!=EOF)
{
num=0;
p=strtok(ch,"5");
while(p!=NULL)
{
a[num++]=atoi(p);
p=strtok(NULL,"5");
}
sort(a,a+num);
for(int i=0;i<num-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[num-1]);
}
return 0;
}

hdu 1106的更多相关文章

  1. hdu 1106 排序 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1106 这个题目一开始以为是水题,就想着用来轻松轻松,谁知道改得我想吐!! 除了discuss 中的数据 ...

  2. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  3. hdu 1106 排序(水题)

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

  4. HDU 1106 排序 题解

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  5. hdu 1106:排序(水题,字符串处理 + 排序)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  6. hdu 1106 排序

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  7. hdu 1106 去5排序

    题目链接:https://vjudge.net/problem/HDU-1106 题目大意: 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数 ...

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

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

  9. HDU 1106 排序(排序)

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

  10. hdu 1106 水

    背景:简单字符串处理,尽管有点绕. #include<cstdio> #include<iostream> #include<cstring> #include&l ...

随机推荐

  1. kalilinux MSF数据库的连接

    需要自动连接数据库.如下设置.

  2. Linux分区格式化

    格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除.格式化通常分为低级格式化和高级格式化.如果没有特别指明, ...

  3. 「学习笔记」FFT及NTT入门知识

    前言 快速傅里叶变换(\(\text{Fast Fourier Transform,FFT}\) )是一种能在\(O(n \log n)\)的时间内完成多项式乘法的算法,在\(OI\)中的应用很多,是 ...

  4. [WEB安全]XXE漏洞总结

    目录 0x00 XML基础 0x01 XML文档结构 0x02 DTD 0x03 实体 0x04 XXE漏洞 0x05 总结一些payload 0x06 XXE漏洞修复与防御 0x07 参考链接 0x ...

  5. 配置mysql远程访问

    参考: https://www.cnblogs.com/sanduzxcvbnm/p/9789236.html

  6. Go By Example-值类型

    Go By Example-值类型 Go语言的数据类型可以分为值类型和引用类型,这里先说值类型. 值类型 值类型:在Go语言中int.float.bool和string这些类型都属于值类型,使用这些类 ...

  7. 分布式文件上传 spring boot + fastdfs + dropzone

    1.首先安装fastDFS 参考链接: https://www.funtl.com/zh/spring-cloud-itoken-codeing/%E5%88%86%E5%B8%83%E5%BC%8F ...

  8. 伍德伯里矩阵恒等式(Woodbury matrix identity)

    宜言饮酒,与子偕老.琴瑟在御,莫不静好. 更多精彩内容请关注微信公众号 "优化与算法" 在数学(特别是线性代数)中,Woodbury矩阵恒等式是以Max A.Woodbury命名的 ...

  9. vue使用install函数把组件做成插件方便全局调用

    在vue项目中,我们可以自定义组件,像element-ui一样使用Vue.use()方法来使用,具体实现方法: 1.首先新建一个Cmponent.vue文件 // Cmponent.vue <t ...

  10. 解决com.android.support版本冲突问题

    原文:https://www.jianshu.com/p/0fe985a7e17e 项目中不同Module的support包版本冲突怎么办? 只需要将以下代码复制到每个模块的build.gradle( ...