LeetCode 125. Valid Palindrome(校验对称)
来源:互联网 发布:加拿大企业家移民 知乎 编辑:程序博客网 时间:2024/05/22 00:37
原题网址:https://leetcode.com/problems/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.
方法一:边推进便比较。
public class Solution { private boolean isAlphanumeric(char ch) { if ((ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || (ch>='0' && ch<='9')) return true; return false; } public boolean isPalindrome(String s) { if (null == s || "".equals(s)) return true; int i=0, j=s.length()-1; while (i<j) { char ic = Character.toLowerCase(s.charAt(i)); if (!isAlphanumeric(ic)) { i++; continue; } char jc = Character.toLowerCase(s.charAt(j)); if (!isAlphanumeric(jc)) { j--; continue; } if (ic != jc) return false; i++; j--; } return true; }}
方法二:先推进再比较。
public class Solution { public boolean isPalindrome(String s) { if (s==null) return true; char[] sa = s.toCharArray(); int len = 0; for(int i=0; i<sa.length; i++) { if (sa[i] >= 'A' && sa[i] <= 'Z') sa[len++] = (char)('a' + sa[i] - 'A'); else if ((sa[i] >='a' && sa[i] <='z') || (sa[i] >= '0' && sa[i] <= '9')) sa[len++] = sa[i]; } for(int i=0, j=len-1; i<j; i++, j--) { if (sa[i] != sa[j]) return false; } return true; }}
0 0
- LeetCode 125. Valid Palindrome(校验对称)
- [LeetCode]125.Valid Palindrome
- LeetCode 125. Valid Palindrome
- [Leetcode] 125. Valid Palindrome
- 【LeetCode】125.Valid Palindrome
- [leetcode] 125.Valid Palindrome
- [leetcode] 125.Valid Palindrome
- Leetcode 125. Valid Palindrome
- 125. Valid Palindrome LeetCode
- 【LeetCode】125. Valid Palindrome
- Leetcode 125. Valid Palindrome
- LeetCode 125. Valid Palindrome
- LeetCode 125. Valid Palindrome
- LeetCode *** 125. Valid Palindrome
- 【leetcode】125. Valid Palindrome
- [leetcode] 125. Valid Palindrome
- leetcode-125. Valid Palindrome
- LeetCode-125.Valid Palindrome
- flask + MongoDB 学习笔记(1) : MongoDB配置和使用
- LeetCode 124. Binary Tree Maximum Path Sum(二叉树最大路径和)
- 河南省ACM第一届第一题
- 【POJ 3070】Fibonacci(矩阵快速幂)
- 扯淡 | 程序员和豪车及阿玛尼
- LeetCode 125. Valid Palindrome(校验对称)
- 读书笔记 ------ 重构 -> 在对象之间搬移特性
- java学习总结(16.05.23)java数据类型的转换
- tarjan求割点
- 读书笔记 ------ 重构 第七章 在代码之间搬移特性
- LeetCode 126. Word Ladder II(单词梯子)
- 制作自己的gitBook 书籍
- 简单的函数指针介绍
- Servlet学习笔记