题意:给定一个字符串,字符串只能移动左右端点放入一个字符串尾部,构造一个字典序最小的字符串
分析:不断扫描左右端点,运用双指针,把左右端点字典序小的放入新的字符串里,当双指针重合的时候退出循环
#include#include using namespace std; const int N = 2005; int main() { int n; cin >> n; string s; cin >> s; int i = 0, j = n - 1; string res; while (i < j) { if (s[i] < s[j]) res += s[i], i++; else res += s[j], j--; } //最后还有一个元素记得放入 res += s[i]; cout << res; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)