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

原创 2016年05月30日 15:02:51
#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");
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

笔试题:C语言中的字符串问题

做编程题时,使用字符串一般都是直接用的C++的string类库,比C语言指针型操作字符串要简易方便很多。但是笔试题中,经常考察指针在C语言字符串中的问题。 下面就我遇到的一些题,谈下我的理解,如有偏差...

【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个

要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系。...
  • htq__
  • htq__
  • 2016年03月10日 10:17
  • 1546

Google笔试题:哈希表的一个意想不到的应用--在字符串中查找第一个只出现一次的字符

1.问题描述 在一个字符串中找到第一个只出现一次的字符。如输入AbAssvfFCCBbhV,则输出v。   2.解题思路 如果按照传统比较的办法,时间复杂度是O(n*n),这显然不是Google面试官...

笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数

#include #include #include void linkString(int count, char *chptr[]); /** 考察点就一个 指针数组 指针数组的意思是:...
  • JQ_AK47
  • JQ_AK47
  • 2016年11月14日 21:59
  • 383

笔试题13:采用UDP协议,编写一个简单发送字符串的程序(源码)

UDP协议是一种无须建立连接的网络通信协议,采用Java来编写,一般有以下几个步骤:(包括接收端和发送端) 1、创建数据Socket,指定一个端口号; 2、对于接收消息的一端来说,提供一个byte...
  • huangmp
  • huangmp
  • 2012年05月10日 19:14
  • 2893

【google 2006年笔试题】 在一个字符串中找到第一个只出现一次的字符(包括普通汉字)

【google 2006年笔试题】 在一个字符串中找到第一个只出现一次的字符(包括普通汉字)...

Java算法面试题(004) 实现一个算法来确定一个字符串是否具有所有唯一的字符

本文详细介绍了如何实现一个算法来确定一个字符串是否具有所有唯一的字符。...

面试题:给定一个字符串,问是否能通过添加一个字母将其变为回文串

题目描述 给定一个字符串,问是否能通过添加一个字母将其变为回文串。 输入描述: 一行一个由小写字母构成的字符串,字符串长度小于等于10。   输出描述: 输出答案(YES\NO).   输入例...

C语言面试题之字符串操作

今天做了花了几分钟做了三道C语言面试题,跟大家分享一下: 找错 Void test1() { char string[10]; char* str1="0123456789"; strcp...
  • sum_TW
  • sum_TW
  • 2017年02月19日 22:54
  • 1692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】【笔试题】【面试题】判断一个字符串是否为另外一个字符串旋转之后的字符串
举报原因:
原因补充:

(最多只允许输入30个字)