首页 > 学院 > 开发设计 > 正文

LeetCode 125. Valid Palindrome

2019-11-14 09:18:18
字体:
来源:转载
供稿:网友

描述 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.

分析 将字符串转换为小写格式,便于统一比较。 自动跳过非数字字母的字符。

代码

class Solution {public: bool isPalindrome(string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); auto left = s.begin(), right = prev(s.end()); while (left < right) { if (!::isalnum(*left)) ++left; else if (!::isalnum(*right)) --right; else if (*left != *right) return false; else { ++left; --right; } } return true; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表