编程判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列“ACBDEDBCA”是回文。
分析:判断一个字符串是否是回文,就是把第一个字符与最后一个字符相比较,第二个字符与倒数第二个字符相比较,依此类推,第1个字符与第n-i个字符相比较。如果每次比较都相等,则为回文;如果某次比较不相等,则不是回文。简单的描述就是,该字符串的顺序串和逆序串相等则为回文字符串。因此,可以把字符串入栈,然后逐个出栈,并比较出栈字符和字符串字符是否相等,若全部相等则该字符序列就是回文,否则就不是回文。
举一反三
- 请设计一个算法,使用栈,判断一个字符串是否为回文。回文:是指正读反读均相同的字符序列,如abba和abdba都是回文,而hello就不是回文。(提示:使用数组存储一个字符串,然后将一半字符入栈。)
- 假设称正读和反读都相同的字符序列为“回文”,例如,“abcddcba”、 “qwerewq”是回文,“ashgash”不是回文。是写一个算法判断读入的一个以‘@’为结束符的字符序列是否为回文。
- 回文序列是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文序列
- 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
- 通常称正读和反读都相同的字符序列为“回文”,例如,“abcdeedcba”、“abcdcba”是回文。若字符序列存储在一个单链表中,编写算法判断此字符序列是否为回文。(提示:将一半字符先依次进栈)
内容
- 0
从键盘上输入字符判断是否是回文,回文就是一个字符从左向右和从右向左读是一样的,如输入abcdcba,是回文;1234554321也是回文(回文数),请编程判断
- 1
【栈和队列 课后习题二---算法设计】 (2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
- 2
试写一个算法,判别读入的一个以‘@’为结束符的字符序列是否是“回文”
- 3
输入一个以回车符为结束标志的字符串(少于80个字符),判断该字符串是否为回文。回文就是字符串中心对称,如“abcba”、“abccba”是回文,“abcdba”不是回文。
- 4
假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’ 和‘ababab’则不是回文。假设一字符序列已存入计算机,请分析用线性表、堆栈和队列等方式正确输出其回文的可能性?