LeetCode OJ:Valid Palindrome(验证回文)
2015-10-08 19:52
309 查看
Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
验证回文与否,这个估计大家学c语言的时候就都写过,感觉我下面写的还是乱了一点:
java版本的代码如下所示,算法没有变化:
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama"is a palindrome.
"race a car"is not a palindrome.
验证回文与否,这个估计大家学c语言的时候就都写过,感觉我下面写的还是乱了一点:
class Solution { public: bool isPalindrome(string s) { if (s.size() == 0) return true; int end = s.size() - 1; int beg = 0; while (beg < end){ while (!isalpha(s[beg]) && !isdigit(s[beg])){ if(beg < end) beg++; else return true; } while (!isalpha(s[end]) && !isdigit(s[end])){ if(end > beg) end--; else return true; } if (toupper(s[beg]) == toupper(s[end])){ beg++, end--; } else{ return false; } } return true; } };
java版本的代码如下所示,算法没有变化:
public class Solution { public boolean isPalindrome(String s) { int sz = s.length(); int beg = 0, end = sz - 1; while(beg < end){ while(!Character.isLetter(s.charAt(beg)) && !Character.isDigit(s.charAt(beg))){ if(beg < end) beg++; else return true; } while(!Character.isLetter(s.charAt(end)) && !Character.isDigit(s.charAt(end))){ if(beg < end) end--; else return true; } if(Character.toUpperCase(s.charAt(beg)) == Character.toUpperCase(s.charAt(end))){ beg++; end--; }else{ return false; } } return true; } }
相关文章推荐
- 关于一些对location认识的误区
- CYC-爱心暖暖的小动画
- UESTC 1712 Easy Problem With Numbers 除法对和数取模,分解,线段树
- Java 安全套接字编程以及 keytool 使用最佳实践
- 第6周项目2--建立链栈算法库
- NSUserDefaults
- 【前端学习】javascript作用域(链)和this
- UIScorollView运用与属性详解
- 最小生成树之prim算法
- 仓储管理流程图
- 导入https证书
- 地图的基础使用
- 使用 TestLink 进行测试管理
- 【mongoDB高级篇③】综合实战(1): 分析国家地震数据
- 最大子序列和
- hdu2795 Billboard 线段树
- superoj441 餐巾计划
- iOS开发 大文件下载封装
- hadoop namenode切换
- leetcode 226--Invert Binary Tree