c语言代码练习36
问:判断数组是否是另一个数组的逆转数组(两种方法
)
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<string.h> #include<assert.h> void Mylift(char* left, char* right) { assert(left != NULL); assert(right != NULL); char rmp = 0; while (left < right) { rmp = *left; *left = *right; *right = rmp; right--; left++; } } void Ayue(char* arr, int k) { assert(arr); int sz = strlen(arr); assert(k < sz); Mylift(arr, arr + k - 1);//逆序左边 Mylift(arr + k, arr + sz - 1);//逆序右边 Mylift(arr, arr + sz - 1);//逆序整体 } int is_Ayue(char* s1, char* s2) { int len = strlen(s1); int i = 0; for (i = 0; i < len; i++) { Ayue(s1, 1);//每次逆转一个,因为这里的s1是变化的 int ret = strcmp(s1, s2); if (ret == 0) return 1; } return 0; } int main() { char arr1[] = "abcdef"; char arr2[] = "cdefab"; int t = is_Ayue(arr1, arr2); if (t == 1) printf("Yes\n"); else printf("No\n"); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> int Ayue(char* arr1,char* arr2) { int len = strlen(arr1); int len1 = strlen(arr2); if (len != len1) { return 0; } strncat(arr1, arr1,len); char* ret = strstr(arr1, arr2); if (ret == NULL) return 0; else return 1; } int main() { char arr1[20] = "abcdef"; char arr2[] = "cdefab"; int ret = Ayue(arr1, arr2); if (ret == 1) printf("YES"); else printf("NO"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程