Advertisement
Josif_tepe

Untitled

Dec 30th, 2023
849
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<int> process_lps(string s) {
  4.         int j = 0, i = 1;
  5.         vector<int> lps((int) s.size(), 0);
  6.         lps[0] = 0;
  7.         while(i < (int) s.size()) {
  8.             if(s[i] == s[j]) {
  9.                 lps[i] = j + 1;
  10.                 i++;
  11.                 j++;
  12.             }
  13.             else {
  14.                 if(j != 0) {
  15.                     j = lps[j - 1];
  16.                 }
  17.                 else {
  18.                     lps[i] = 0;
  19.                     i++;
  20.                 }
  21.             }
  22.         }
  23.         return lps;
  24.     }
  25.  
  26.     string longestPrefix(string s) {
  27.         vector<int> v = process_lps(s);
  28.        
  29.         return s.substr(0, v[(int) v.size() - 1]);
  30.     }
  31. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement