判断一个字符串是否为另一个字符串旋转之后的字符串 (arr1是arr2右旋得到)

问题:

1.判断函数传参时忘记给arr2加\[\]

2.把if放在for之外,导致判断不出,程序报错

cpp 复制代码
void reverse_right(char* right, char* left)
{
	assert(left != NULL);
	assert(right != NULL);
	while (right > left)
	{
		char* temp = *right;
		*right = *left;
		*left = temp;
		left++;
		right--;
	}
}
void turn_right(char* arr, int k)
{
	assert(arr != NULL);
	int len = strlen(arr);
	assert(k >= 0);
	//1
	reverse_right(arr + len - 1, arr + len - k);
	//2
	reverse_right(arr + len - 1 - k, arr);
	//3
	reverse_right(arr + len - 1, arr);
}
int panduan_right(char arr1[], char arr2[])
{
	int len = strlen(arr1);
	int i = 0;
	for ( i = 0; i < len; i++)
	{
		turn_right(arr1, 1);
		if (strcmp(arr1, arr2) == 0)
		{
			return 1;
		}
	}
	return 0;
}
int main()
{
	char arr1[] = "cdeab";
	char arr2[] = "abcde";
	int ret = panduan_right(arr1, arr2);
	if (ret == 1)
	{
		printf("y\n");
	}
	else
	{
		printf("n\n");
	}
	return 0;
}
相关推荐
kkeeper~6 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
2401_868534786 小时前
论企业网络设计
数据结构
wabs6667 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964138 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
嗝o゚8 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本8 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
Ulyanov10 小时前
用声明式语法重新定义Python桌面UI:QML+PySide6现代开发入门(一)
开发语言·python·算法·ui·系统仿真·雷达电子对抗仿真
数据科学小丫10 小时前
特征工程处理
人工智能·算法·机器学习
z落落10 小时前
C#参数区别
java·算法·c#
c2385611 小时前
vector(下)
数据结构·算法