题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
写之前不知道multimap,用的vector二维数组,写完后流下了悔恨的泪水。。。
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<vector<int>> vec(27);
string s;
int n, m, j;
getline(cin, s);
for(int i= 0; i< s.length(); ++i)
if(s[i]>= 'a'&& s[i]<= 'z' || s[i]>= 'A'&& s[i]<= 'Z')
vec[tolower(s[i])-'a'].push_back( i );
else
vec[26].push_back( i );
vector<vector<int>>:: iterator iter;
vector<int>:: iterator it;
vector<int> vct;
for(iter = vec.begin(), m= 0,j= 0; iter!= vec.end() ; ++iter){
vct= *iter;
for(it = vct.begin(); it!= vct.end(); ++it,++j){
while( !vec[26].empty() && j== vec[26][m]){
cout<< s[j++];
++m;
}
if( j< s.length())
cout << s[*it];
}
}
}
查看14道真题和解析