九章算法面试题78 有效回文串
2016-01-03 12:32
429 查看
原文网址:
www.jiuzhang.com问题描述:
给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。在线评测本题:
http://www.lintcode.com/zh-cn/problem/valid-palindrome/解答 :
这道题其实是一道常见的细节考察题,虽然看似不太难,但是却有几个坑点需要考虑,如果能够完整考虑到坑点的话, 那么才能做到写这道题的时候bug free.从算法细节来说,这道题无非是一道两个指针的题目,指针为对撞型指针, 一个指针指向头,一个指针指向尾,每次比较头指针指向的元素和尾指针指向的元素是否相等,如果一直到头指针和尾指针相遇的时候那么这个字符串就是回文字符串。
你以为这样就解决这道题了么?
其实不然。
还需要考虑的如下几个细节:
遇到非字母和数字只用跳过就好。
字符串有可能是空字符串,所以要考虑空串的情况。
参考代码:
http://www.jiuzhang.com/solutions/valid-palindrome/相关文章推荐
- 程序员必读书单
- 笔试面试,单链表相关(3)遍历一次找中间结点、倒数第K个结点
- 笔试面试单链表相关(2)在任意位置前插入结点、逆置链表
- 复制:改需求之路:设计师的一小步,程序员的一大步
- 12 本最具影响力的程序员书籍
- <笔试><面试>单链表相关(1)从尾到头打印链表、删除一个无头链表的非尾结点
- OSChina 周日乱弹 —— 程序员的鄙视链
- 优秀程序员的6个共同特质
- 黑马程序员——java基础之多线程
- 从头认识java-15.7 Map(4)-介绍HashMap的工作原理-hash碰撞(经常作为面试题)
- 面试题——查找单链表的中间节点
- 黑马程序员——java基础之多态
- 初入职场的思考
- Android面试宝典(一位优秀应届生面试经验,很多Android高阶问题)
- Android面试题及其参考答案
- 心路历程(四)-我的2015
- 黑马程序员——数据加密问题的两种实现方式
- 程序员面试指南
- 如何编写职业发展计划
- 面试题10 找到链表中倒数第 K 个元素