mid那题知道咋做了,就是动态规划。 int main() { int q; cin >> q; for (int i = 0; i < q; ++i) { string a, b; cin >> a >> b; int n = a.size(); int m = b.size(); vector<vector<bool>>dp(n + 1, vector<bool>(m + 1)); dp[0][0] = 1; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { if (a[i-1] == b[j-1] || (a[i - 1] >= 'a&(30185)
#39; && a[i - 1] <= 'z'&& a[i - 1] - 'a&(30185)
#39; == b[j - 1] - 'A') ) { dp[i][j] = dp[i - 1][j - 1]; } if (a[i - 1] >= 'a&(30185)
#39; && a[i - 1] <= 'z')dp[i][j] = dp[i][j] || dp[i - 1][j]; } } if (dp[n][m])cout << "YES"; else cout << "NO"; } }