博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode:Valid Palindrome
阅读量:6256 次
发布时间:2019-06-22

本文共 1652 字,大约阅读时间需要 5 分钟。

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.

分析:题意为 给出一个字符串,检查它是不是一个回文的情况。判断时只考虑字母数字的字符并且忽略大小写。

注意点 1、考虑字符串为空的情况,并将其作为回文的

          2、忽略大小写的差别,比较之前先将大小写转换为一致的

          3、非字母数字字符要跳过,将它滤除,得到有效字符串

          4、对有效字符串前后相应位置进行比较判断

代码如下:

class Solution {  public:      bool isStr(char &ch){          if(ch >= '0' && ch <= '9'){              return true;          } else if(ch >= 'a' && ch <= 'z'){              return true;          } else if(ch >= 'A' && ch <= 'Z'){             ch += 32;             return true;          }                     return false;      }            bool isPalindrome(string s) {          // Start typing your C/C++ solution below          // DO NOT write int main() function          int len = s.length();          if(len == 0){              return true;          }                    string str = "";          for(int i = 0; i < len; i++){   // remove illegal char, such as "?" "/" ...              if(isStr(s[i])){                  str += s[i];              }          }                    len = str.length();          int mid = (len + 1) / 2;          for(int i = 0; i < mid; i++){              if(str[i] != str[len - 1 - i]){     // check front and end char                  return false;              }          }          return true;      }  };

其他解法:  

转载于:https://www.cnblogs.com/carsonzhu/p/4690854.html

你可能感兴趣的文章
浅谈UML中类之间的五种关系及其在代码中的表现形式
查看>>
原创:CentOS6.4配置solr 4.7.2+IK分词器
查看>>
cocos2d(3.0)一些基础的东西
查看>>
jQuery动画animate方法使用介绍
查看>>
自适应网页设计(Responsive Web Design)
查看>>
[C#]Hosting Process (vshost.exe)
查看>>
spring beans源码解读之--bean definiton解析器
查看>>
mysql索引优化
查看>>
Async Performance: Understanding the Costs of Async and Await
查看>>
POJ3352Road Construction(构造双连通图)sdut2506完美网络
查看>>
[原]Android打包之跨平台打包
查看>>
Linq的Distinct方法的扩展
查看>>
Union-Find 检测无向图有无环路算法
查看>>
RDIFramework.NET ━ 9.4 角色管理 ━ Web部分
查看>>
[SAP ABAP开发技术总结]逻辑数据库
查看>>
unix ls命令
查看>>
Ajax核心技术之XMLHttpRequest
查看>>
使用T4模板生成不同部署环境下的配置文件
查看>>
如何把Json格式字符写进text文件中
查看>>
Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)
查看>>