onezee

#1

Feb 19th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. /*
  2. Имеются две строки A и B.
  3. Найти такую строку С, которая содержит в себе и А и В в качестве подстрок и является кратчайшей среди всех таких возможных строк.
  4. Подстрокой строки называется последовательно идущая подпоследовательность этой строки.
  5. Строка kbtu является подстрокой строки kbtuopen, но строка fall подстрокой не является.
  6.  
  7. A (1 <= |A| <= 105)
  8. B (1 <= |B| <= 105)
  9. только латинские строчные буквы.
  10.  
  11. compressing
  12. single
  13. - compressingle
  14.  
  15. can
  16. you
  17. - canyou
  18.  
  19. compressiondoneright
  20. doner
  21. - compressiondoneright
  22.  
  23. details
  24. tail
  25. - details
  26.  
  27. essential
  28. code
  29. - essentialcode
  30. */
  31.  
  32. #include <iostream>
  33. #include <conio.h>
  34. #include <string>
  35.  
  36. using namespace std;
  37.  
  38. void main() {
  39.     setlocale(LC_ALL, "Russian");
  40.  
  41.     string a, b ,c;
  42.     int k = 0;
  43.  
  44.     cout << "Введите строки A и B:" << endl;
  45.     cin >> a >> b;
  46.     for (int i = 0; i <= size(a); i++) {
  47.         if (a[i] == b[0]) {
  48.             for (int j = 1; j < size(b); j++) {
  49.                 if (a[i + j] == b[j]) {
  50.                     k = j+1;
  51.                 }
  52.                 else {
  53.                     break;
  54.                 }
  55.             }
  56.         }
  57.     }
  58.    
  59.     if (k != 0) {
  60.         c.append(a);
  61.         if (k < size(b)) {
  62.             for (int i = k; i < size(b); i++) {
  63.                 c.push_back(b[i]);
  64.             }
  65.         }
  66.     }
  67.     else if (k == 0) {
  68.         c.append(a);
  69.         c.append(b);
  70.     }
  71.  
  72.     cout << "c : " << c << endl;
  73.  
  74.     _getch();
  75. }
Advertisement
Add Comment
Please, Sign In to add comment