Leetcode NO.125 Valid Palindrome
2015-10-11 05:39
399 查看
本题题目要求如下:
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.
本题思路还算简单,就是从两边向中间遍历,如果不是数字和字母,就跳过,如果是,就比较。。。
代码如下:
class Solution {
public:
bool isPalindrome(string s) {
int left = 0;
int right = s.length() - 1;
while (left < right) {
if (!isalnum(s[left])) {
++left;
}
else if (!isalnum(s[right])) {
--right;
}
else {
if (tolower(s[left]) != tolower(s[right])) {
cout << left << " " << right << endl;
return false;
}
else {
++left;
--right;
}
}
}
return true;
}
};
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) {
int left = 0;
int right = s.length() - 1;
while (left < right) {
if (!isalnum(s[left])) {
++left;
}
else if (!isalnum(s[right])) {
--right;
}
else {
if (tolower(s[left]) != tolower(s[right])) {
cout << left << " " << right << endl;
return false;
}
else {
++left;
--right;
}
}
}
return true;
}
};
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C++联合体转换成C#结构的实现方法
- C#实现的算24点游戏算法实例分析
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析