zangyuanan320的博客

Keep Dreaming!!

【C语言】【笔试题】【面试题】判断一个字符串是否为另外一个字符串旋转之后的字符串

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <string.h>
void reserve(char *left, char*right)
{
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
void left_reserve(char arr[], int k)
{
	int len = strlen(arr) - 1;
	char *pstart = &arr[0];
	char *pend = arr + len;
	reserve(pstart, pstart + k - 1);
	reserve(pstart + k, pend);
	reserve(pstart, pend);
}
void right_reserve(char arr[], int k)
{
	int len = strlen(arr) - 1;
	char *pstart = &arr[0];
	char *pend = arr + len;
	reserve(pstart, pstart + len - k);
	reserve(pend - k+1, pend);
	reserve(pstart, pend);
}
int main()
{
	char arr[10] = "AABCD";
	char arr2[10] = "ABCDA";
	char *p = arr;
	int k = 5;
	while (k)
	{
		left_reserve(arr, k);
		if (strcmp(arr, arr2) == 0)
		{
			printf("1\n");
			break;
		}
		right_reserve(p, k);
		if (strcmp(p, arr2) == 0)
		{
			printf("1\n");
			break;
		}
		k--;
	}
	if (0 == k)
	{
		printf("0\n");
	}
	system("pause");
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zangyuanan320/article/details/51538059
上一篇【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
下一篇【C语言】【笔试题】模拟实现strstr函数
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭