• 2022-06-06
    【栈和队列 课后习题二---算法设计】 (2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
  • [题目分析] 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较。即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符比较,……,直至栈空,结论为字符序列是回文。在出栈元素与串中字符比较不等时,结论字符序列不是回文。 [算法描述] #defineStackSize100//假定预分配的栈空间最多为100个元素 typedefcharDataType;//假定栈元素的数据类型为字符 typedefstruct {DataTypedata[StackSize]; inttop; }SeqStack; intIsHuiwen(char*t) {//判断t字符向量是否为回文,若是,返回1,否则返回0 SeqStacks; inti,len; chartemp; InitStack(&s); len=strlen(t);//求向量长度 for(i=0;i

    内容

    • 0

      假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’ 和‘ababab’则不是回文。假设一字符序列已存入计算机,请分析用线性表、堆栈和队列等方式正确输出其回文的可能性?

    • 1

      编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ACBDEDBCA”是回文。

    • 2

      试写一个算法,判别读入的一个以‘@’为结束符的字符序列是否是“回文”

    • 3

      从键盘上输入字符判断是否是回文,回文就是一个字符从左向右和从右向左读是一样的,如输入abcdcba,是回文;1234554321也是回文(回文数),请编程判断

    • 4

      针对串的顺序表示写一算法,判断该字符串是否是回文(即正读与反读相言,如“abcba” 是一个回文,而"abc"则不是)。