C语言 ——— 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

目录

题目要求

代码思路

代码实现


题目要求

写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

例如

s1 = "AABCD" ;s2 = "BCDAA" ,返回1

s1 = "AABcd" ;s2 = "BCDAA" ,返回0


代码思路

每次将 s1 左旋1个字符串,然后和 s2 判断是否相等即可

左旋实现代码:C语言 --------- 实现一个函数,使字符串左旋-CSDN博客


代码实现

复制代码
#include<stdio.h>
#include<string.h>
#include<assert.h>
void Levorotation_Str(char* str)
{
	size_t len = strlen(str);

	char tmp = str[0];

	int i = 0;
	for (int i = 0; i < len - 1; i++)
	{
		str[i] = str[i + 1];
	}

	str[len - 1] = tmp;
}
int Is_Left_Move(char* str1, char* str2)
{
	assert(str1 && str2);

	// 判断两个字符串是否等长
	if (strlen(str1) != strlen(str2))
		return 0;

	for (int i = 0; i < strlen(str1); i++)
	{
		// str1 字符串每次左旋一个字符,再判断是否等同于 str2 字符串

		Levorotation_Str(str1);

		if (strcmp(str1, str2) == 0)
			return 1;
	}

	return 0;
}
int main()
{
	char arr1[] = "AABCDEF";
	char arr2[] = "BCDEFAA";

	int ret = Is_Left_Move(arr1, arr2);

	if (ret == 1)
	{
		printf("Yes\n");
	}
	else
	{
		printf("No\n");
	}

	return 0;
}

代码验证:

两字符串相同时:

两字符串不同时:

相关推荐
一碗绿豆汤3 小时前
C语言-函数
c语言
闭着眼睛学算法3 小时前
【双机位A卷】华为OD笔试之【模拟】双机位A-新学校选址【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·javascript·c++·python·算法·华为od
草莓工作室3 小时前
AT指令解析:TencentOS Tiny AT指令解析源码分析1-TencentOS Tiny 简介
c语言·物联网·嵌入式·at指令·4g模组
无限进步_5 小时前
扫雷游戏的设计与实现:扫雷游戏3.0
c语言·开发语言·c++·后端·算法·游戏·游戏程序
Yupureki6 小时前
从零开始的C++学习生活 8:list的入门使用
c语言·c++·学习·visual studio
kyle~8 小时前
计算机系统---CPU的进程与线程处理
linux·服务器·c语言·c++·操作系统·计算机系统
小此方9 小时前
C语言自定义变量类型结构体理论:从初见到精通(下)
c语言·数据结构·算法
Yupureki9 小时前
从零开始的C++学习生活 7:vector的入门使用
c语言·c++·学习·visual studio
张口口10 小时前
1032 挖掘机技术哪家强
c语言
史迪奇_xxx11 小时前
9、C/C++ 内存管理详解:从基础到面试题
java·c语言·c++