字符串循环左移

给定一个字符串S,把S的前K个字符移到S的尾部

如把abcdef的ab移到字符串末尾得到cdefab的做法

(X‘Y’)‘ = YX

如:abcdef

X = ab X’ = ba;

Y = cdef Y' = fedc;

(X'Y')' = (bafedc)' = cdefab;


代码如下

void ReverseString(char* s,int from,int to){
	while(from < to){
		char t = s[from];
		s[from++] = s[to];
		s[to--] = t;
	}
}

void leftRotateString(char* s,int n,int m){
	m %= n;
	ReverseString(s,0,m-1);
	ReverseString(s,m,n-1);
	(s,0,n-1);
}


第一次写博客,希望以后能够坚持下去

你可能感兴趣的:(字符串循环左移)