Advertisement
Guest User

SuffixArrayDiv1.cpp

a guest
Oct 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.46 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. class SuffixArrayDiv1 {
  5.     public:
  6.         int minimalCharacters(vector<int> SA) {
  7.             int n = SA.size();
  8.             vector<int> pos(n + 1);
  9.             vector<int> let(n);
  10.             for (int i = 0; i < n; ++i) {
  11.                 pos[SA[i]] = i;
  12.             }
  13.             pos[n] = -1;
  14.             let[SA[0]] = 1;
  15.             for (int i = 1; i < n; ++i) {
  16.                 let[SA[i]] = let[SA[i - 1]];
  17.                 if (pos[SA[i - 1] + 1] > pos[SA[i] + 1]) let[SA[i]]++;
  18.             }
  19.             return let[SA[n - 1]];
  20.         }
  21. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement