| 33 | } |
| 34 | |
| 35 | std::vector<int> z_naive(std::vector<int> s) { |
| 36 | int n = int(s.size()); |
| 37 | std::vector<int> z(n); |
| 38 | for (int i = 0; i < n; i++) { |
| 39 | while (i + z[i] < n && s[z[i]] == s[i + z[i]]) z[i]++; |
| 40 | } |
| 41 | return z; |
| 42 | } |
| 43 | |
| 44 | TEST(StringTest, Empty) { |
| 45 | ASSERT_EQ(std::vector<int>{}, suffix_array("")); |