algo

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub dnx04/algo

:warning: strings/MinRotation.h

Code

int minRotation(string s) {
  int a = 0, N = sz(s);
  s += s;
  for(int b = 0; b < N; ++b) for(int k = 0; k < N; ++k) {
    if (a + k == b || s[a + k] < s[b + k]) {
      b += max(0, k - 1);
      break;
    }
    if (s[a + k] > s[b + k]) {
      a = b;
      break;
    }
  }
  return a;
}
#line 1 "strings/MinRotation.h"
int minRotation(string s) {
  int a = 0, N = sz(s);
  s += s;
  for(int b = 0; b < N; ++b) for(int k = 0; k < N; ++k) {
    if (a + k == b || s[a + k] < s[b + k]) {
      b += max(0, k - 1);
      break;
    }
    if (s[a + k] > s[b + k]) {
      a = b;
      break;
    }
  }
  return a;
}
Back to top page