2 条题解
-
0
#include #include #include using namespace std;
bool compare(string s1, string s2, string newOrder) { int len1 = s1.length(); int len2 = s2.length(); int len = min(len1, len2); for (int i = 0; i < len; i++) { if (newOrder.find(s1[i]) < newOrder.find(s2[i])) { return true; } else if (newOrder.find(s1[i]) > newOrder.find(s2[i])) { return false; } } return len1 < len2; }
int main() { int n; cin >> n; string newOrder; cin >> newOrder; string* strings = new string[n]; for (int i = 0; i < n; i++) { cin >> strings[i]; } sort(strings, strings + n, [&](string s1, string s2) { return compare(s1, s2, newOrder); }); for (int i = 0; i < n; i++) { cout << strings[i] << endl; } return 0; }
- 1
信息
- ID
- 17
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 72
- 已通过
- 27
- 上传者
京公网安备 11011102002149号