lintcode 容易题:Valid Palindrome 有效回文串
2015-10-17 17:27
393 查看
题目:
样例
注意
你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。
在这个题目中,我们将空字符串判定为有效回文。
挑战
O(n) 时间复杂度,且不占用额外空间。
解题:
去除非有效字符后,整体是个回文串,两边查找,利用快速排序的思想,通过while找到有效的字符串
Java程序:
View Code
总耗时: 825 ms
有效回文串
给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。样例
"A man, a plan, a canal: Panama"是一个回文。
"race a car"不是一个回文。
注意
你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。
在这个题目中,我们将空字符串判定为有效回文。
挑战
O(n) 时间复杂度,且不占用额外空间。
解题:
去除非有效字符后,整体是个回文串,两边查找,利用快速排序的思想,通过while找到有效的字符串
Java程序:
class Solution: # @param {string} s A string # @return {boolean} Whether the string is a valid palindrome def isPalindrome(self, s): # Write your code here if s.isspace() or s=="": return True s = s.lower() left = 0 right = len(s) - 1 while left< right: while (self.isValid(s[left]))==False: left += 1 if left>= right: return True while (self.isValid(s[right])) ==False: right -=1 if left>=right: return True if s[left]!= s[right]: return False left += 1 right -= 1 return True def isValid(self,ch): # isalnum() if ch.isalpha(): return True if ch.isdigit(): return True return False
View Code
总耗时: 825 ms
相关文章推荐
- 解决openssh-server包无法安装的问题
- Android控件使用:WebView(一)
- 大道至简第三章读后感
- 自己实现的assign功能
- Codevs P1380 没有上司的舞会
- jquery实现页面等待时的交互效果
- 安卓蓝牙通信
- 关于windowsAPI录音
- linux下c语言递归实现ls -l功能
- Android OpenGL ES从零开始
- 计算机网络协议
- 文本服务器控件(标签Label控件和文本框(TextBox)控件)
- mysql.sock的作用
- 集体智慧编程的笔记
- hibernate 一对多映射 懒加载
- myEclipse使用maven插件报错:-Dmaven.multiModuleProjectDirectory system propery is not set.
- Android复合自定义组件(几个基本组件组成的自定义组件)
- 学习日志---linux磁盘格式化
- 用python3.x与mysql数据库构建简单的爬虫系统
- 有10000个正整数,取值范围在1到1000之间,找出从小到大排在第3400(从0算起)的那个数,将此数的值返回,要求不使用排序实现