fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(void) {
  5. char s[10];
  6. scanf ("%10s", s);
  7. int pi[strlen(s) + 1];
  8. int k = 0;
  9. pi[0] = 0;
  10. for (int i = 1; i < strlen(s); ++i)
  11. {
  12. while (k > 0 && s[k] != s[i])
  13. k = pi[k - 1];
  14. if (s[k] == s[i])
  15. k++;
  16. pi[i] = k;
  17. }
  18. printf("%d",pi[strlen(s) - 1]);
  19. return 0;
  20. }
  21.  
Success #stdin #stdout 0s 4328KB
stdin
acbabc
stdout
Standard output is empty