【C语言】【笔试题】【面试题】判断一个字符串是否为另外一个字符串旋转之后的字符串
2015-11-03 22:35
555 查看
#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"); }
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享