算法编程题5-字符串部分移位问题

来源:互联网 发布:软件评测师 总分 编辑:程序博客网 时间:2024/06/14 09:42

给定一个字符串str,和一个整数i,i代表str中的位置,将str[0..i] 移到右侧,str[i+1,N-1]移到左侧

举例:

str = "ABCDE",i =2,将str调整为"DEABC"。要求,时间复杂度为O(N),额外空间复杂度为O(1)


解决方案:

1.把str整体做逆序调整

2.把str[0..i]部分做逆序调整

3.把str[i+1..N-1]座逆序调整

string stringTranslation(string A, int n, int len) {// write code here//整体逆序reverse(A.begin(), A.end());//前半部局部逆序reverse(A.begin(), A.begin() +n-len);//后半部局部逆序reverse(A.begin() + n - len, A.end());return A;}