判断字符序列是否为回文

2023-05-16

假设称正读和反读都相同的字符序列为"回文",例如,'abba'和'abcba'是回文,'abcde' 和'ababab'则不是回文。试写一个算法判别读入的一个以'@'为结束符的字符序列是否是"回文"。
可使用栈Stack和队列Queue及其下列操作:
Status InitStack(Stack &S);           
Status Push(Stack &S, ElemType x);    
Status Pop(Stack &S, ElemType &x);    
Status StackEmpty(Stack S);           

Status InitQueue(Queue &Q);
Status EnQueue(Queue &Q, ElemType x);
Status DeQueue(Queue &Q, ElemType &x);
Status QueueEmpty(Queue Q);

实现函数如下:

Status Palindrome(char *word)
/* 利用栈和队列判定字符序列word是否是回文 */
{   /**利用了栈的先进后出的特性与队列的先进先出的特性**/
    Stack s;
    Queue q;
    char *x;
    char a,b;
    x = word;
    InitStack(s);
    InitQueue(q);
    while(*x != '@'){
        Push(s, *x);    //压栈
        EnQueue(q, *x); //进队列
        x++;
    }
    while(!StackEmpty(s) && !QueueEmpty(q)){
        Pop(s, a);      //弹栈
        DeQueue(q, b);  //出队列
        if(a != b)      //匹配栈顶元素和队列的对头元素
            return FALSE;
    }
    if(StackEmpty(s) && QueueEmpty(q)){//当栈和队列都为空时,全部匹配完成
        return TRUE;
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断字符序列是否为回文 的相关文章

随机推荐

  • 最全Pycharm教程(6)——将Pycharm作为Vim编辑器使用

    如果觉得这篇文章对您有所启发 xff0c 欢迎关注我的公众号 xff0c 我会尽可能积极和大家交流 xff0c 谢谢 最全Pycharm教程 xff08 1 xff09 定制外观 最全Pycharm教程 xff08 2 xff09 代码风格
  • C++ String拼接

    做个笔记 看下边的代码 xff1a span class hljs keyword string span str1 61 span class hljs string 34 ls 34 span span class hljs comme
  • xxl-job源码之执行器执行任务的核心流程

    xxl job源码之执行器执行任务的核心流程 先来一张图大致看看 如果看的不清晰 xff0c 可以前往地址 xff1a https www processon com view link 604e0b860791291f25613424 密
  • Choreographer 丢帧计算

    在Logcat中 xff0c 我们经常会看到系统输出如下Log xff1a Choreographer Skipped 180 frames The application may be doing too much work on its
  • JWT的数字签名的简单理解

    一 JWT概念 json web token 二 JWT与原始token的区别 JWT是对原始security的oauth2 token的增强 原始的token只是一个uuid xff0c 没有任何意义 JWT包含了部分业务信息 xff0c
  • Docker容器内部无法访问外网原因之一

    问题描述 部署了一个Docker环境 xff0c 宿主机可以访问Internet xff0c 启动了一个容器发现容器里的服务无法访问Internet xff0c Docker网络使用的是桥接 xff08 bridge xff09 模式 问题
  • nohup: failed to run command `java': No such file or directory解决

    程序里远程执行shell命令 xff08 nohup java jar xff09 的执行 xff0c 后台日志报错如下 xff1a nohup failed to run command 96 java 39 No such file o
  • C++中,两个头文件互相引用(转载)

    定义了两个头文件 a h include 34 b h 34 class a b b1 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 b
  • CEF加载本地H5页面,支持JS和C++交互

    今天闲来无事 xff0c 写个CEF相关的博客 xff0c 很多同学还只会加载简单的CEF控件 xff0c 但是涉及到需要和H5页面交互就比较头疼了 xff0c 今天来简单介绍一下 xff0c 有兴趣可以加qq 295282563 xff0
  • Linux下编译tinyhttpd

    Linux下编译tinyhttpd 来源 xff1a https blog csdn net qq673675158 article details 104927245 spm 61 1001 2014 3001 5506 根据说明 xff
  • 语音编码技术,AMR、AMR-NB、AMR-WB、EVS总结

    最近对实时语音编码技术有点兴趣 xff0c 于是了解了一下 一开始听说AMR NB窄带编码 xff0c 搜索才发现更多的编码技术 xff0c 这里总结一下 xff0c 便于日后查看 一 什么是AMR AMR WB 全称Adaptive Mu
  • xxl-job源码之admin调度中心的线程们

    xxl job中的线程们 启动后 xff0c 从控制台看看admin调度中心 span class token string 34 xxl job admin JobFailMonitorHelper 34 span 64 span cla
  • imx6ull移植OpenWRT系统

    参考 xff1a i mx6ul开发板移植openwrt系统 https blog csdn net qq 40614144 article details 105538483 有几点需要补充 xff1a 1 在imx6ull的Linux内
  • 最近的学习目标

    自己动手编写TCP IP协议栈 xff0c 或者简单点的UDP协议栈 xff0c 参考LWIP协议栈 xff1b 自己动手实现一个HTTP服务器 xff0c 参考tinyhttpd xff0c lighttpd xff0c uhttpd x
  • make[1]: *** 没有规则可以创建“all”需要的目标“hello_world.srec”。 停止。

    在uboot1 1 4目录下 make后 xff0c 出现错误 xff1a make 1 没有规则可以创建 all 需要的目标 hello world srec 停止 发现以下方法可以解决 xff1a 今天在新安装的Debian etch中
  • could not resolve host: github.com 问题解决办法

    点击这里 xff0c 查看相关内容 xff1a https blog csdn net zhenfengshisan article details 57566709
  • 解决无法Ping通Github

    解决无法Ping通Github https blog csdn net u012552275 article details 61654857 Ubuntu平台同理 xff1a gedit etc hosts 在最后添加 192 30 25
  • STM32 ST-LINK Utility介绍、下载、安装、使用方法

    STM32 ST LINK Utility介绍 下载 安装 使用方法 原文如下 xff1a https blog csdn net ybhuangfugui article details 52597133
  • nginx高效内存池分析

    背景分析 nginx作为一个高效的服务器服务器框架 xff0c 在网站搭建领域占领了很大比例 xff1b 以成为不可忽视的一大块领域 xff1b 它能如此高效的运行跟他的优秀的内存管理机制有很大的关系 xff0c 今天抽出时间就来学习和分析
  • 判断字符序列是否为回文

    假设称正读和反读都相同的字符序列为 34 回文 34 xff0c 例如 xff0c 39 abba 39 和 39 abcba 39 是回文 xff0c 39 abcde 39 和 39 ababab 39 则不是回文 试写一个算法判别读入