回文的判定C语言(栈实现),Java简单实现
内容:
回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。
1.算法分析:
回文如上述所言,是指正读和反读均相同的字符序列。所以要判断一串字符串是不是回文,就要把字符串逆序,然后与原来的字符串作比较,若二者相同,则说明是回文。
针对这个问题,我们可以采用栈来解决这个问题,因为栈具有先进后出的特性,我们只需要将字符入栈,随后再进行出栈,和原本的字符串相同位对比即可。若二者相同,则说明是回文,当字符很短的时候,程序可以很快的运行出来,但是当需要判断的字符串长度很长的时候,全部入栈会浪费时间,所以为了缩短比较的时间,我们可以将一半字符入栈,然后出栈,与余下的另一半比较。若栈顶指针top==0时,则该字符串可以回文,反之,栈顶指针没有到0而比对结果不同,则说明不能回文。
所以设计算法时,首先需要初始化一个线性表,写出入栈,出栈程序。然后将字符串的长度求出来,利用length()/2-1求出一半字符位置并
共有 0 条评论