一天一道LeetCode

本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github

欢迎大家关注我的新浪微博,我的新浪微博

欢迎转载,转载请注明出处

(一)题目

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.

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.

(二)解题

题目大意:判断一个字符串是不是有效的回文字符串。忽略里面除了数字和字母的其他字符。

解题思路:两个指针i和j,i从前往后,j从后往前,碰到p[i]和p[j]都是字母或者数字就比较大小,如果相等就i++,j–反之则返回false

直到i>=j时,说明是有效回文,返回true。

//isalnum()是判断该字符是不是字母或数字
class Solution {
public:
    bool isPalindrome(string s) {
        int len = s.length();
        int i = 0;
        int j = len-1;
        while(i<=j)
        {
            while(!isalnum(s[i])&&i<=j) i++;//直到s[i]为字母或数字为止
            while(!isalnum(s[j])&&i<=j) j--;//直到s[j]为字母或数字为止
            if(i<=j&&tolower(s[i])!=tolower(s[j])) return false;//如果不等就返回false
            i++;j--;//反之就继续比较
        }
        return true;
    }
};

最新文章

  1. ASP.NET MVC和EF集成AngularJS开发
  2. 循环队列java实现
  3. 如何让页眉随章节的不同而变化(Word 2010)
  4. 一行代码解决各种IE兼容问题IE8,IE9,IE10
  5. HDU 4944 FSF’s game 一道好题
  6. [转]JavaScript实现 页面滚动图片加载
  7. viewpage图片轮播
  8. 07_例子讲解:rlCoachKin + rlCoachMdl
  9. 关于DPC和workitem的简单用法
  10. js 正则 非负整数
  11. Thread和Runnable差别
  12. Hadoop权威指南:通过distcp并行复制
  13. Java IO学习笔记(二)缓冲流
  14. C语言之scanf
  15. Java——IO系统概览
  16. 页面通过Jquery取值然后传值到后台显示underfined是怎么回事?
  17. unity3d的playmaker插件使用教程,三、对象出入触发,声音播放
  18. EEPLAT学习
  19. 2.4G无线控制器附加AT2401C功放IC增加距离
  20. CSS样式有哪些常用的属性?

热门文章

  1. tensorflow deepmath:基于深度学习的自动化数学定理证明
  2. Java 反射实现实体转Map时,父类元素丢失
  3. redux 最简例子
  4. Vim8.0在Debian下,normal模式的O命令出现延时
  5. sublime下配置C/C++运行环境
  6. python学习之路网络编程篇(第四篇)
  7. python笔记十(列表生成式、字典生成式、生成器、生成器的并行)
  8. 百钱买百鸡问题Java
  9. 使用GDAL进行RPC坐标转换
  10. Querying CRM data with LINQ