c_cpp 反向串。给定长度为n且索引为i的字符串s(0 <= i <= n)。仅使用恒定的额外空间,您如何操纵字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 反向串。给定长度为n且索引为i的字符串s(0 <= i <= n)。仅使用恒定的额外空间,您如何操纵字符串相关的知识,希望对你有一定的参考价值。

void reverse1(string &s, int i, int j) {
     if(i < 0 || j >= s.size() || i > j || s.empty()) return;
     while(i <= j) {
          swap(s[i++], s[j--]);
     }
}

void manipulate(string &s, int i) {
     if(s.empty()) return;
     reverse1(s, 0, s.size()-1);
     int mid = s.size() - i - 2;
     reverse1(s, 0, mid);
     reverse1(s, mid+1, s.size()-1);
}

以上是关于c_cpp 反向串。给定长度为n且索引为i的字符串s(0 <= i <= n)。仅使用恒定的额外空间,您如何操纵字符串的主要内容,如果未能解决你的问题,请参考以下文章

子串判断

BZOJ4259: 残缺的字符串

回文树(模板)

Uva 12012 Detection of Extraterrestrial 求循环节个数为1-n的最长子串长度 KMP

[HDU2825]Wireless Password

Codechef LOCAUG17