3.14 01串排序
生活随笔
收集整理的這篇文章主要介紹了
3.14 01串排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將01串首先按照長度排序,其次按1的個數的多少排序,最后按ASCII碼排序。
輸入樣例:
10011111
00001101
10110101
1
0
1100
輸出樣例:
0
1
1100
1010101
00001101
10011111
#include<fstream> #include<iostream> #include<string> #include<set> using namespace std;int oneNum(string);struct stringComp{bool operator()(const string &s1, const string &s2){int lengths1 = s1.length();int lengths2 = s2.length();if (lengths1 != lengths2)return lengths1 < lengths2;int ones1 = oneNum(s1);int ones2 = oneNum(s2); return ones1 != ones2 ? ones1 < ones2 : s1 < s2;} };int main(){ifstream cin("data.txt");string s;set<string, stringComp> sset;while(cin >> s){sset.insert(s);}for(set<string, stringComp>::iterator it = sset.begin(); it != sset.end(); ++it)cout << *it << endl;return 0; } int oneNum(string s){int num = 0;for(int i = 0; i < s.length() -1; ++i){if(s[i] == '1')++num;}return num; }
總結
以上是生活随笔為你收集整理的3.14 01串排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.13 判读是否是对称素数
- 下一篇: 3.15 排列对称串