判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串。
来源:互联网 发布:安卓的重置网络设置 编辑:程序博客网 时间:2024/05/16 14:23
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>void show(char arr[], int len) //打印数组 char arr[]表示数组,int len表示数组长度{assert(len > 0);int i = 0;for (i = 0; i < len; i++){printf("%c", arr[i]);}}void swap(char *x, char *y){*x ^= *y;*y ^= *x;*x ^= *y;}void left_reverse(char arr[], int len, int reverse_num)//左旋字符串函数, char arr[]表示数组,int len表示数组长度{ //int reverse_num 代表左旋字符串的个数assert(len > 0);int i = 0;int n = 0;char temp;for (n = 0; n < reverse_num; n++){temp = arr[0];for (i = 0; i < len; i++){arr[i] = arr[i + 1];}arr[len - 1] = temp;}}void right_reverse(char arr[], int len, int reverse_num){assert(len > 0);int start = 0;int end = len - 1;int i = 0;int j = 1;int end1 = len - 1;for (i = 0; i < reverse_num; i++){int start = 0;int end = strlen(arr) - 1;int start1 = 1;int end1 = end;while (start < end){swap(&arr[start], &arr[end]);start++;end--;}while (start1 < end1){swap(&arr[start1], &arr[end1]);start1++;end1--;}}}int judge(char arr[], char str[], int len, int len1){assert(len > 0);assert(len1 > 0);if (strncmp(arr, str, len) == 0){return 1;}else{return 0;}}int main(){char array[] = "AEBCD";char str[] = "abcde";int len = strlen(array);int len1;int number = 0;int i = 0;printf("请输入要判断的字符串:");scanf("%s", str);printf("\n");len1 = strlen(str);printf("请输入一个字符串:");scanf("%s", array);printf("\n");printf("please enter right_number:");scanf("%d", &number);printf("右旋之前的字符:");show(array, len);printf("\n");printf("右旋之后的字符:");right_reverse(array, len, number);show(array, len);printf("\n");if (judge(array, str, len, len1)){printf("该字符串是另一个字符串右旋之后的字符串");}else{printf("该字符串不是另一个字符串右旋之后的字符串");}printf("\n");printf("\n");printf("请输入一个字符串");scanf("%s", array);printf("\n");printf("please enter left_number:");scanf("%d", &number);printf("左旋之前的字符:");show(array, len);printf("\n");left_reverse(array, len, number);printf("左旋之后的字符:");show(array, len);printf("\n");if (judge(array, str, len, len1)){printf("该字符串是另一个字符串左旋之后的字符串");}else{printf("该字符串不是另一个字符串左旋之后的字符串");}printf("\n");system("pause");return 0;}
0 0
- 判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串
- 判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串。
- C语言:判断一个字符串是否为另外一个字符串旋转之后的字符串。(左旋右旋、求子串)
- 判断一个字符串是否与另外一个字符串左旋或者右旋之后相等
- 【c语言】判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串。
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- C语言 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串。
- C语言程序-判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串。
- 字符串面试题(四)— 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 【C语言】【笔试题】【面试题】判断一个字符串是否为另外一个字符串旋转之后的字符串
- 判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字
- //4.判断一个字符串是否为另外一个字符串旋转之后的字符串。 //例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0. //AABCD左旋
- [leetcode]Count of Range Sum
- (三)shiro权限认证(授权)
- android ViewPager自动轮播时控制切换速度
- js代码分析
- Homebrew
- 判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串。
- 热力学的认识
- java集合04--fail fast机制原理以及解决办法
- 基于四元数的简单互补滤波姿态解算
- 存储过程与事务案例
- [iOS开发] 发送验证码的倒计时(采用异步请求的方式)
- 奇怪的javascript变量名"name"
- 关于springMVC 时间的问题
- Redis各个数据类型的使用场景