当栈遇到回文

如果一个字符串是回文的话,那么它一定必须是中间对称的。所以我们需要求字符串的中点。

#include "stdio.h"
#include "string.h"

main(){
	char str[50],  stack[50];//a数组存放字符串,  stack数组是定义的栈
	int i,  len,  mid,  next,  top;
	gets(a);  // 读入一行字符串
	len = strlen(a);//字符串的长度
	mid = len / 2-1;//字符串的中点

	top = 0;//栈的初始化
	for(i = 0; i < mid; i ++)
		s[++top]  = a[i];//mid前面的字符依次入栈
	
	//需要去判断字符串长度是奇数还是偶数
	if(len % 2 == 0)
		next = mid + 1;
	else
		next = mid + 2;
	for(i = next; i  < = len - 1; i  ++)//开始匹配
	{
		if a[i] != s[top]
			break;
		top -- ;
	}
	if(top == 0)
		printf("The string is huiwen");
	else
		printf("The string is not huiwen");
	while(1);
	return 0;


	
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值