人海一粒渣@705 2022-03-11 17:41 采纳率: 50%
浏览 326

试写一个算法,判定给定的字符向量是否为回文

答案不对
#include <stdio.h>
#include <string.h>

const int TRUE = 1;
const int FALSE = 0;
const int STR_MAX_SIZE = 100;
typedef int STATUS;
typedef char ElementType;
typedef struct
{
int stack_size;
ElementType *top;
ElementType *base;
}STACK;

STATUS IsPlalindrome(char* s);
int main()
{
// char *str_input; //之前这么定义的,导致程序在gets(str_input)处出错,后改成下一句
char str_input[STR_MAX_SIZE];
printf("\n请输入待检测的字符串:");
gets(str_input);
//本来以为加上getchar()就可以了,但是还是不对

if(IsPlalindrome(str_input))
{
    printf("\n是回文字符串!");
}
else
{
    printf("\n不是回文字符串!");
}
return 0;

}

STATUS IsPlalindrome(char* s)
{
int len;
char *p;
STACK stack;

len = strlen(s) / 2; 
p = s;

stack.base = new char [len];
stack.top = stack.base;
stack.stack_size = len;

for(int i = 0; i < stack.stack_size; i++)
{
    *(stack.top) = *p;
    stack.top++;
    p++;
}

if(stack.stack_size % 2 == 1)//当字符串为奇数个时,最中间的字符无需比较,直接跳过 
{
    p++;
}
while(stack.top != stack.base)
{
    if(*(stack.top - 1) != *p)
    {
        delete [] stack.base;
        return FALSE;    
    }
    else
    {
        stack.top--;
        p++;
    }
}
if(stack.top == stack.base)
{
    delete [] stack.base;
    return TRUE;
}

}

  • 写回答

1条回答 默认 最新

  • 一只蚂蝼 2022-03-11 20:11
    关注

    img


    兄弟你这句什么意思?

    评论

报告相同问题?

问题事件

  • 创建了问题 3月11日

悬赏问题

  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测