fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. bool canTransform(string s, string t) {
  6. int n = s.size(), m = t.size();
  7. // 如果 t 本身就是 s 的子串(不需要操作的情况)
  8. if (s.find(t) != string::npos) {
  9. return true;
  10. }
  11. // 尝试所有可能的子串删除并添加到末尾的操作
  12. for (int l = 0; l < n; ++l) {
  13. for (int r = l; r < n; ++r) {
  14. // 构造新的字符串:s 去掉 [l, r] 子串,然后将该子串添加到末尾
  15. string new_s = s.substr(0, l) + s.substr(r + 1) + s.substr(l, r - l + 1);
  16. if (new_s == t) {
  17. return true;
  18. }
  19. }
  20. }
  21. return false;
  22. }
  23.  
  24. int main() {
  25. int T;
  26. cin >> T;
  27. while (T--) {
  28. int n, m;
  29. cin >> n >> m;
  30. string s, t;
  31. cin >> s >> t;
  32. if (canTransform(s, t)) {
  33. cout << "YES" << endl;
  34. } else {
  35. cout << "NO" << endl;
  36. }
  37. }
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5316KB
stdin
2
4 2
acdc
ad
4 2
accd
ad
stdout
NO
NO