WordPress网站根目录有哪些,网站建设学习培训,网站名重复,vi设计概念1 题目
字符串的左旋转操作是把字符串前面的若干字符转移到字符串尾部#xff0c;比如字符串abcdef和数字2,函数返回左旋转得到的结果是cdefgab 2 思路
先反转字符串所有#xff0c;通过数字n找到的边界 ,然后再反转字符串部分左边和部分右边。 3 代码实现
#include s…1 题目
字符串的左旋转操作是把字符串前面的若干字符转移到字符串尾部比如字符串abcdef和数字2,函数返回左旋转得到的结果是cdefgab 2 思路
先反转字符串所有通过数字n找到的边界 ,然后再反转字符串部分左边和部分右边。 3 代码实现
#include stdio.h/** 反转整个字符串*/
void reverse(char *begin, char *end)
{if (NULL begin || NULL end)return;while (begin end){char temp *end;*end *begin;*begin temp;begin;--end;}
}/** 左旋转字符串* abcdefg* gfedcba* cdefgab*/
char* leftReverse(char *str, int n)
{if (str NULL || n 0){return NULL;}//先反转所有字符串char *begin str;char *end str;int len 0, count n;while (*end ! \0){end;len;}if (n len){return NULL;}end--;reverse(begin, end);begin str;//移动end到左右反转分界地方while (n 0){--n;--end;}//反转左边一部分reverse(begin, end);//反转右边一部分reverse(end 1, end count);return str;
}int main()
{char b[] abcdefg;char *result NULL;result leftReverse(b, 2);printf(%s\n, result);return 0;
} 4 运行结果
cdefgab