#include<iostream> #include<string> #include<vector> #include<map> #include<algorithm> using namespace std; vector<string> vi; map<char, int> dict; string str; int n; bool cmp(string A, string B) { int len = min(A.length(), B.length()); for (int i = 0; i < len; i++) { if (A[i] != B[i]) return dict[A[i]] <= dict[B[i]]; } return A.length() < B.length(); } int main(void) { while (getline(cin, str)) { cin >> n; cin.ignore(); string temp; temp.clear(); vi.clear(); for (int i = 0; i < n; i++) { temp.clear(); getline(cin, temp); vi.push_back(temp); } dict.clear(); for (int i = 0; i < 26; i++) { dict[str[i]] = i; } sort(vi.begin(), vi.end(), cmp); for (int i = 0; i < n; i++) { cout << vi[i]; if (i < n - 1) cout << endl; } } return 0; } 100%
点赞 评论

相关推荐

牛客网
牛客企业服务