码迷,mamicode.com
首页 > 编程语言 > 详细

hiho 第214周 Sorting Photo Files(排序)

时间:2018-08-20 15:35:16      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:false   include   turn   define   algo   display   math   cos   clu   

1.自定义排序,两个字符串提取出全字符和全数字的子段,如果全字符的子段相等,比较得到的数字大小。

技术分享图片
 1 #include <set>
 2 #include <map>
 3 #include <queue>
 4 #include <deque>
 5 #include <stack>
 6 #include <cmath>
 7 #include <cstdio>
 8 #include <vector>
 9 #include <string>
10 #include <cstring>
11 #include <fstream>
12 #include <iostream>
13 #include <algorithm>
14 using namespace std;
15 
16 #define eps 1e-8
17 #define PI acos(-1.0)
18 #define INF 0x3f3f3f3f
19 #define FAST_IO ios::sync_with_stdio(false)
20 const int N=123;
21 string s[N];
22 
23 bool cmp(string s1,string s2){
24     int n1=s1.size();
25     int n2=s2.size();
26     string s11="",s22="";
27     int num1=0,num2=0;
28     for(int i=0;i<n1;i++){
29         if(s1[i]>=0&&s1[i]<=9){
30             s11=s1.substr(0,i);
31             break;
32         }
33     }
34     for(int i=0;i<n1;i++){
35         if(s1[i]>=0&&s1[i]<=9){
36             num1=10*num1+(s1[i]-0);
37         }
38     }
39     for(int i=0;i<n2;i++){
40         if(s2[i]>=0&&s2[i]<=9){
41             s22=s2.substr(0,i);
42             break;
43         }
44     }
45     for(int i=0;i<n2;i++){
46         if(s2[i]>=0&&s2[i]<=9){
47             num2=10*num2+(s2[i]-0);
48         }
49     }
50     if(s11==s22){
51         return num1<num2;
52     }
53     return s11<s22;
54 }
55 
56 int main(){
57     int n;
58     cin>>n;
59     for(int i=0;i<n;i++) cin>>s[i];
60     sort(s,s+n,cmp);
61     for(int i=0;i<n;i++){
62         if(i!=n-1) cout<<s[i]<<endl;
63         else cout<<s[i];
64     }
65     return 0;
66 }
View Code

 

hiho 第214周 Sorting Photo Files(排序)

标签:false   include   turn   define   algo   display   math   cos   clu   

原文地址:https://www.cnblogs.com/ehanla/p/9505468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!