LeetCode 第 125 題 (Valid Palindrome)
LeetCode 第 125 題 (Valid Palindrome)
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) {
string::const_iterator head = s.cbegin();
string::const_iterator tail = s.cend();
while(head < tail)
{
if(!isalnum(*head))
{
head ++;
continue;
}
if(!isalnum(*tail))
{
tail --;
continue;
}
if( tolower(*head) != tolower(*tail) )
{
return false;
}
head ++;
tail --;
}
return true;
}
};
如果不習慣用 iterator,還可以寫成 C 風格的。
class Solution {
public:
bool isPalindrome(string s)
{
int n1 = 0, n2 = s.length() - 1;
while(n1 < n2)
{
if(!isalnum(s[n1]))
{
n1 ++;
continue;
}
if(!isalnum(s[n2]))
{
n2 --;
continue;
}
if( tolower(s[n2]) != tolower(s[n1]) )
{
return false;
}
n1 ++;
n2 --;
}
return true;
}
};
相關文章
- 125. Valid Palindrome
- LeetCode 之 JavaScript 解答第20題 —— 有效的括號(Valid Parentheses)LeetCodeJavaScript
- LeetCode - 解題筆記 - 8 - Palindrome NumberLeetCode筆記
- Leetcode 9 Palindrome NumberLeetCode
- [LeetCode/LintCode] Largest Palindrome ProductLeetCode
- [LeetCode] 9. Palindrome NumberLeetCode
- [LeetCode] 336. Palindrome PairsLeetCodeAI
- Leetcode 20 Valid ParenthesesLeetCode
- Leetcode 36 Valid SudokuLeetCode
- Leetcode 234. Palindrome Linked ListLeetCode
- LeetCode刷題記125-148. 排序連結串列LeetCode排序
- leetcode第九題Palindrome Number 驗證迴文數字LeetCode
- Leetcode 32 Longest Valid ParenthesesLeetCode
- LeetCode Palindrome Number(009)解法總結LeetCode
- LeetCode題解第122題LeetCode
- Leetcode 611 javascript Valid Triangle NumberLeetCodeJavaScript
- [LeetCode] 678. Valid Parenthesis StringLeetCode
- [LeetCode] 32. Longest Valid ParenthesesLeetCode
- Leetcode第1~10題LeetCode
- LeetCode刷題之第701題LeetCode
- leetcode學習筆記09 palindrome-numberLeetCode筆記
- LeetCode125. 驗證迴文串LeetCode
- leetcode 593. Valid Square練習LeetCode
- leetcode 593. Valid Square 練習LeetCode
- LeetCode Valid Parentheses(020)解法總結LeetCode
- [leetcode 第 400 場周賽]題解LeetCode
- KMP演算法(Leetcode第28題)KMP演算法LeetCode
- leetcode的第9題:迴文數LeetCode
- 搞定字串類面試題-Palindrome字串面試題
- 牛課題霸--palindrome-number
- LeetCode65. Valid Number — 判斷合法數字LeetCode
- Leetcode 20 有效的括號valid-parentheses(棧)LeetCode
- LeetCode 第 86 號問題:分割連結串列LeetCode
- Leetcode 第136場周賽解題報告LeetCode
- 資料庫管理-第125期 融合vs專用(202301221)資料庫
- LeetCode第 146 號問題: LRU 快取機制LeetCode快取
- CF557E Ann and Half-Palindrome 題解
- JavaScript實現-LeetCode刷題-【對稱二叉樹】-第101題!!!JavaScriptLeetCode二叉樹
- 【每日一題】125. 驗證迴文串每日一題