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.

解题思路:

注意题目,忽略大小写,忽略非字母或数字,JAVA实现如下:

    public boolean isPalindrome(String s) {
if(s.length()<=1)
return true;
int left=0,right=s.length()-1;
while(left<right){
if(!Character.isLetterOrDigit(s.charAt(left))){
left++;
continue;
}
if(!Character.isLetterOrDigit(s.charAt(right))){
right--;
continue;
}
if(Character.toUpperCase(s.charAt(left))!=Character.toUpperCase(s.charAt(right)))
return false;
left++;
right--;
}
return true;
}

最新文章

  1. 利用lambda和Collection.forEach
  2. TP框架,根据当前应用状态对应的配置文件
  3. C# C++联调
  4. Linux环境下apache性能测试工具ab使用详解
  5. windows 下配置 Nginx 常见问题(转)
  6. 九度oj-1003-Java
  7. IOS第四天(3:数组的排序和乱序)
  8. JSP动作跳转页面的时候与根目录的问题
  9. (转)最强Android模拟器genymotion的安装与配置
  10. CentOS6 root 用户 vi/vim 无法开启高亮
  11. Fastjson反序列化泛型类型时候的一个问题
  12. 内存卡的class是什么意思 内存卡class的5个等级
  13. Android设置Activity背景为透明style
  14. data格式加载图片
  15. android AsyncTask介绍 转载
  16. 神奇的选择器 :focus-within
  17. matlab 三维激光雷达点云的地面与障碍物检测
  18. BZOJ2275[Coci2010]HRPA——斐波那契博弈
  19. Linux 下执行Shell 脚本的方式
  20. Java从内存流中读取byte数组

热门文章

  1. iOS -- iOS11新特性,如何适配iOS11
  2. EasyMvc入门教程-高级控件说明(18)弹出框控件
  3. Git修改IP重新定位的方法
  4. 使用eclipse搭建maven多module项目(构建父子项目)
  5. 即将到来的Android N,将具备这些新特性
  6. SAS学习笔记之函数应用
  7. MySQL binlog-do-db选项是危险的[转]
  8. vue.js+koa2项目实战(一)创建项目和elementUI配置
  9. 又一次认识java(九) ---- 内部类
  10. C#命名空间大全详细教程