题目:
字符串的左旋转操作是把字符串前面的若干个字符串转到字符串的尾部。
思路:
这个我们其实把问题仔细思考,要把前几个字母翻转到字符串的尾部的话,其实我们可以进行三次的翻转,首先对前k个字符进行内部的翻转,然后再把后面的字符进行翻转,最后把整体翻转一下就可以实现前k个字符移到字符串的尾部。
代码实现:
- char* reverse(char* s,int start,int end){
- while(start<=end){
- int temp=s[start];
- s[start++]=s[end];
- s[end--]=temp;
- }
- return s;
- }
- char* reverseLeftWords(char* s, int n){
- int len=strlen(s);
- s=reverse(s,0,n-1);
- s=reverse(s,n,len-1);
- s=reverse(s,0,len-1);
- return s;
- }