leetcode: (125) Valid Palindrome
2015-08-27 18:04
549 查看
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
方法一:题目要求除了字母和数字外其他的符号不用考虑,定义设置前后两后两个指针,从两个方向判断;
Runtime 12ms
方法二:通过库函数,较为简洁
For example,
"A man, a plan, a canal: Panama"is a palindrome.
"race a car"is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
方法一:题目要求除了字母和数字外其他的符号不用考虑,定义设置前后两后两个指针,从两个方向判断;
class Solution { public: bool isPalindrome(string s) { int len =s.size(); string::iterator beg=s.begin(); string::iterator en=s.end()-1; if (beg==en) return true; while(beg<en) { if(!(isalpha(*beg)||(*beg>='0'&&*beg<='9'))) beg++; if(!(isalpha(*en)||(*en>='0'&&*en<='9'))) en--; if((isalpha(*beg)||(*beg>='0'&&*beg<='9'))&&(isalpha(*en)||((*en>='0'&&*en<='9')))) { if(*beg>='A'&&*beg<='Z') *beg+=32; if(*en>='A'&&*en<='Z') *en+=32; if (*beg==*en) {beg++;en--;} else return false; } } return true; } };
Runtime 12ms
方法二:通过库函数,较为简洁
bool isPalindrome(string s) { int len =s.size(); string::iterator beg=s.begin(); string::iterator en=s.end()-1; if (beg==en) return true; while(beg<en) { if(!isalnum(*beg)) beg++; if(!isalnum(*en)) en--; if(isalnum(*beg)&&isalnum(*en)) { if(isupper(*beg)) *beg=tolower(*beg); if(isupper(*en)) *en=tolower(*en); if (*beg==*en) {beg++;en--;} else return false; } } return true; }Runtime 16ms
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- 数据库链接字符串查询网站
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Flex字符串比较 还有Flex字符串操作
- Ruby中的String对象学习笔记
- Ruby中创建字符串的一些技巧小结
- ASP下经常用的字符串等函数参考资料
- 将字符串小写转大写并延时输出的批处理代码
- 将字符串转换成System.Drawing.Color类型的方法
- Lua源码中字符串类型的实现
- Lua性能优化技巧(四):关于字符串
- 字符串聚合函数(去除重复值)
- Ruby中的字符串编写示例
- 总结的5个C#字符串操作方法分享
- sqlserver中求字符串中汉字的个数的sql语句
- sql server字符串非空判断实现方法