zoey
点击国内主页可以让浏览速度加快哦 ~ !

关于HDOJ 1106题(排序) 的理解(C/C++)

2019-08-09 hdoj 粗心 细节 空格
Word count: 553 | Reading time: 2min

题目描述

                       排序

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

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

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

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

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

Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。

Sample Input
0051231232050775

Sample Output
0 77 12312320

Source
POJ

原题链接

More info:Question

最后一个数的输出不能带空格!

最后一个数的输出不能带空格!!

最后一个数的输出不能带空格!!!

Accepted代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
string input;
int res[1001];
string ans[1001];
int main() {
int k=0;
while (cin >> input) {

k = 0;
for (int i = 0; i < 1001; i++) ans[i] = "";
for (int i = 0; i < input.size(); i++) {
int count=0;
if (i && input[i] == '5' && input[i-1]!='5') { k++; continue; }
if(input[i] != '5') ans[k] += input[i];
}
if (input[input.size() - 1] == '5') k--;
//for (int i = 0; i <= k; i++) cout << ans[i] << " ";cout << endl;
int kk = k+1;

for (int j = 0; j < kk;j++) {
for (int i = 0; i < (int)ans[j].size(); i++) {
if(ans[j]!="")
res[j] += ((int)ans[j][i] - '0')*pow(10,ans[j].size()-i-1);
}

}

sort(res, res + kk);

for (int i = 0; i < kk; i++) { if (i != kk - 1) cout << res[i] << " "; else cout << res[i]; }
cout << endl;
memset(res,0,sizeof(res));
}
return 0;
}

Author: Zoey

Link: https://zoey1038569979.github.io/2019/08/09/hdoj1106/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
关于HDOJ 1157题(Who's in the Middle(中位数)) 的理解(C/C++)
NextPost >
关于HDOJ 1098题(Ignatius's puzzle) 的理解(C/C++)
CATALOG
  1. 1. 题目描述
  2. 2. 原题链接
  3. 3. 最后一个数的输出不能带空格!
  4. 4. 最后一个数的输出不能带空格!!
  5. 5. 最后一个数的输出不能带空格!!!
  6. 6. Accepted代码