1 solutions
-
0
本题的核心在于实现一个自定义的字典序排序,我们可以使用Lambda表达式进行自定义排序规则
#include<bits/stdc++.h> using namespace std; const int N=50010; string s[N]; int order[300]; int main() { string s1; int n; cin>>s1>>n; for(int i=0;i<s1.size();i++)//遍历整个序列 { order[s1[i]]=i; } for(int i=0;i<n;i++) //输入需要排序的字符串 { cin>>s[i]; } sort(s,s+n,[&](const string &a,const string &b){ //将a和b按照给定的顺序排序 for(int i=0;i<a.size()&&i<b.size();i++) { if(a[i]!=b[i]) return order[a[i]]<order[b[i]]; } return a.size()<b.size(); }); for(int i=0;i<n;i++) { cout<<s[i]<<endl; } return 0; }
- 1
Information
- ID
- 2617
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 1
- Accepted
- 1
- Uploaded By