1 条题解
-
0
C++ :
#include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; // 检查字符串是否为非降序排列 bool is_Valid(const string &s) { for (int i = 0; i < s.size() - 1; i++) { if (s[i] > s[i + 1]) { return false; } } return true; } // 排序规则:首字符升序,次尾字符升序 bool compare(const string &a, const string &b) { if (a[0] != b[0]) { return a[0] < b[0]; // 首字符升序 } else { return a.back() < b.back(); // 尾字符升序(首字符相同) } } int main() { int T; cin >> T; for (int i = 0; i < T; i++) { int n; cin >> n; vector<string> A(n); bool valid = true; // 读取并检查字符串有效性 for (int j = 0; j < n; j++) { cin >> A[j]; if (!is_Valid(A[j])) { valid = false; } } if (!valid) { cout << 0 << endl; continue; // 存在无效字符串,跳过后续处理 } sort(A.begin(), A.end(), compare); // 按规则排序 // 检查相邻字符串的尾首条件 bool flag = true; for (int j = 0; j < n - 1; j++) { if (A[j].back() > A[j + 1][0]) { flag = false; break; } } cout << (flag ? 1 : 0) << endl; } return 0; }
- 1
信息
- ID
- 5525
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者