HDOJ 排序(用5分隔)
来源:互联网 发布:奥卡福体测数据 编辑:程序博客网 时间:2024/06/06 02:52
Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
Sample Input
0051231232050775
Sample Output
0 77 12312320
学长的AC代码:
- #include <cstdio>
- #include <iostream>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- char str[1100];
- int a[1100];
- int main ()
- {
- while(scanf("%s", &str)!=EOF)
- {
- int len = strlen(str);
- int k = 0, i;
- memset(a, 0 , sizeof(a));
- // memset(void *s,int c,size_t n) 将已开辟内存空间 s 的首 n 个字节的值设为值 c;
- // 一字节一字节地把整个数组设置为一个指定的值,用于初始化;
- for(i=0; i< len; i++)
- {
- if(str[i] != '5') //搜索开头的‘5’就向后(就跳过,不读入)
- break;
- }
- for(; i < len; ++i)
- {
- if(str[i] != '5')
- {
- for(; i<len && str[i] != '5'; ++i)<span style="white-space:pre"> </span>//<span style="white-space:pre"> </span>不是5且未结束
- {
- a[k] = a[k] * 10 + str[i] - '0';//<span style="white-space:pre"> </span>分离出5后面的数字;!!!
- }
- k++; // 利用k记录数据的个数……
- }
- }
- sort(a, a + k);
- // sort(begin,end),表示一个范围,把数组a按升序排序;
- // 用#include <algorithm> sort即可使用</span>
- for(int j = 0; j < k - 1; ++j) // 输出除最后一个元素以外的其他元素
- printf("%d\n", a[k - 1]); // 最后一个元素结束输出空格
- }
- return 0;
- }
小结:
其中的算法:
1.sort (直接进行排序);
2. a[k] = a[k] * 10 + str[i] - '0';将字符转化为数字并存储;
3. for(int j = 0; j < k - 1; ++j)
printf("%d ", a[j]);
printf("%d\n", a[k - 1]); 保证输出格式的正确
printf("%d ", a[j]);
printf("%d\n", a[k - 1]); 保证输出格式的正确
4.memset清零函数的使用!
Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
Sample Input
0051231232050775
Sample Output
0 77 12312320
学长的AC代码:
- #include <cstdio>
- #include <iostream>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- char str[1100];
- int a[1100];
- int main ()
- {
- while(scanf("%s", &str)!=EOF)
- {
- int len = strlen(str);
- int k = 0, i;
- memset(a, 0 , sizeof(a));
- // memset(void *s,int c,size_t n) 将已开辟内存空间 s 的首 n 个字节的值设为值 c;
- // 一字节一字节地把整个数组设置为一个指定的值,用于初始化;
- for(i=0; i< len; i++)
- {
- if(str[i] != '5') //搜索开头的‘5’就向后(就跳过,不读入)
- break;
- }
- for(; i < len; ++i)
- {
- if(str[i] != '5')
- {
- for(; i<len && str[i] != '5'; ++i)<span style="white-space:pre"> </span>//<span style="white-space:pre"> </span>不是5且未结束
- {
- a[k] = a[k] * 10 + str[i] - '0';//<span style="white-space:pre"> </span>分离出5后面的数字;!!!
- }
- k++; // 利用k记录数据的个数……
- }
- }
- sort(a, a + k);
- // sort(begin,end),表示一个范围,把数组a按升序排序;
- // 用#include <algorithm> sort即可使用</span>
- for(int j = 0; j < k - 1; ++j) // 输出除最后一个元素以外的其他元素
- printf("%d\n", a[k - 1]); // 最后一个元素结束输出空格
- }
- return 0;
- }
小结:
其中的算法:
1. sort (直接进行排序);
2. a[k] = a[k] * 10 + str[i] - '0'; 将字符转化为数字并存储;
3. for(int j = 0; j < k - 1; ++j)
printf("%d ", a[j]);
printf("%d\n", a[k - 1]); 保证输出格式的正确
printf("%d ", a[j]);
printf("%d\n", a[k - 1]); 保证输出格式的正确
0 0
- HDOJ 排序(用5分隔)
- Num 4: HDOJ: 题目1106 : 排序(以5为分隔符进行分割)
- HDOJ 1425(排序)
- 字符串分隔排序问题
- hdoj ’5‘为空格 排序
- (精)hdoj(双重排序)
- HDOJ 2020 绝对值排序(简单排序)
- hdoj 稳定排序 1872 (模拟&排序)
- HDOJ 排序
- hdoj 1234(结构体排序)
- 解题报告-HDOJ-1285(拓扑排序)
- HDOJ 1106 排序 (字符串处理)
- HDOj 2094 产生冠军(拓扑排序)
- HDOJ 2019 数列有序!(排序)
- HDOJ 2647 Reward(分层拓扑排序)
- HDOJ - Uniform Generator(排序,随机数)
- HDOJ-1811(拓扑排序+严格顺序)
- HDOJ 4324 Triangle LOVE(拓扑排序)
- C# WPF button样式清空以及关闭 最小化 按钮重置
- 杭电1010
- iOS开发多线程篇—线程安全
- (转)主成分分析(Principal components analysis)-最大方差解释及
- Xcode 6 关于 iOS App 国际化问题
- HDOJ 排序(用5分隔)
- Online Judge System For SzNOI 题库 语法百题 c++ d018
- hession开发遇到的问题 Server returned HTTP response code: 500 for URL:
- PHP 中运用 elasticsearch
- 在 python 使用socket 获取 IP
- STL map常用操作简介
- spring List,Set,Map,Properties,array的使用配置文件注入实例
- c#调用硬件提供的二次开发函数方法
- C++ primer读书笔记 4