有一些0、1字符串(长度不超过20),将其按1的个数的多少的顺序进行输出。
时间: 2024-02-15 07:02:31 浏览: 53
可以使用哈希表和自定义比较函数来实现该功能。具体步骤如下:
1.定义一个哈希表,键为字符串,值为该字符串中1的个数。
2.遍历所有字符串,计算每个字符串中1的个数,并将其存入哈希表中。
3.定义一个自定义比较函数,比较两个字符串在哈希表中对应的值的大小。
4.使用STL中的sort函数,根据自定义比较函数对哈希表进行排序。
5.遍历排序后的哈希表,输出其中的键即可。
具体代码如下:
```c++
#include <iostream>
#include <unordered_map>
#include <algorithm>
using namespace std;
//自定义比较函数
bool cmp(pair<string, int>& a, pair<string, int>& b){
return a.second < b.second;
}
int main(){
int n;
cin >> n;
unordered_map<string, int> umap;
string s;
for(int i=0;i<n;i++){
cin >> s;
int count = 0;
for(int j=0;j<s.length();j++){
if(s[j] == '1')
count++;
}
umap[s] = count;
}
vector<pair<string, int>> vec(umap.begin(), umap.end());
sort(vec.begin(), vec.end(), cmp);
for(auto it=vec.begin();it!=vec.end();it++){
cout << it->first << endl;
}
return 0;
}
```
该程序先输入字符串个数n,然后输入n个字符串,按照1的个数的多少进行输出。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)