用堆栈编写判断字符串是否为回文的算法 5

 我来答
若以下回答无法解决问题,邀请你更新回答
splash_jony
2008-10-19
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
const char *szStr = "abddeaeddba";

BOOL IsLoop(const char *p)
{
char stack[100];
int i,j,l;

l = strlen(p);
j = l / 2; // 取中间位置
j = (l % 2 == 0)?j:j-1; // 长度为奇偶时的修正

for(i = 0; i <= j; i++)
{
stack[i] = p[i];
}
for(i = j,j+=(l % 2 == 0)?1:2;i > -1; i--,j++)
{
if(stack[i] != p[j]) // stack[i--]算不算STACK操作?
return false;
}

return true;

}

int main()
{
// 只要szStr长度不超过99个字符则不会出问题
printf("%s is %s a loop string\n",szStr, IsLoop(szStr)?"":"not");
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式