1. string min_express(string& s) {
  2. int n = s.size();
  3. if(n == 0) return s;
  4. int i = 0, j = 1, k = 0;
  5. while(k < n && i < n && j < n) {
  6. if(s[(i + k) % n] == s[(j + k) % n]) k ++;
  7. else {
  8. s[(i + k) % n] > s[(j + k) % n] ? i += k + 1 : j += k + 1;
  9. if(i == j) i ++;
  10. k = 0;
  11. }
  12. }
  13. i = min(i, j);
  14. return s.substr(i) + s.substr(0, i);
  15. }

模版题

  1. https://leetcode-cn.com/problems/rotate-string/