1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int getmin(char* s){ int n = strlen(s), i = 0, j = 1, k = 0; while (i < n && j < n && k < n){ int t = s[(i + k) % n] - s[(j + k) % n]; if (!t) k++; else { if (t > 0) i += k + 1; else j += k + 1; if (i == j) j++; k = 0; } } return min(i, j) + 1; }
|