125Valid Palindrome
来源:互联网 发布:javascript 倒计时 编辑:程序博客网 时间:2024/05/25 20:00
题目链接: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.
解题思路:
这道题对我来说意义很有意义,因为它是我暑假面试中遇到的一道题!!!
另外一道是 1 Two Sum 如此看来当时面试的几道题基本都来自 leetcode !!!
因为当时面试官给出了解答,所以至今记得解题思路。
- 这道题只考虑数字和字母(字母有大小写之分),所以遇到其它符号时,自动跳过。
- 具体来说就是,分别从字符串两边向中间遍历,遇到非数字和字母的符号就跳过,直至左右两个指针遇到。
这题有些隐藏的小细节需要注意。
1. 字母有大小写之分,比较之前应该先统一转变为小写或大写。
2. 如果输入的字符串没有数字或字母,该字符串仍然看做是回文。
3. 在指针向中间靠拢的过程中,若指针一直没有遇到数字或字母,就会一直加加或减减,此时应注意判断指针是否越界。
代码实现:
public class Solution { public boolean isPalindrome(String s) { if(s == null || s.length() == 0 || s.length() == 1) return true; int l = 0; int r = s.length() - 1; while(l < r) { char lc = s.charAt(l); while((lc < '0' || lc > '9') && (lc < 'A' || lc > 'Z') && (lc < 'a' || lc > 'z')) { if(l >= r) break; l ++; lc = s.charAt(l); } char rc = s.charAt(r); while((rc < '0' || rc > '9') && (rc < 'A' || rc > 'Z') && (rc < 'a' || rc > 'z')) { if(l >= r) break; r --; rc = s.charAt(r); } if(Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) return false; l ++; r --; } return true; }}
475 / 475 test cases passed.Status: AcceptedRuntime: 9 ms
0 0
- [125]Valid Palindrome
- LeetCode 125: Valid Palindrome
- LeetCode 125 Valid Palindrome
- LeetCode: Valid Palindrome [125]
- leetcode 125-Valid Palindrome
- [leetcode 125] Valid Palindrome
- 125Valid 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---(125) Valid Palindrome
- Leetcode[125]-Valid Palindrome
- 125Valid Palindrome
- leetcode[125]:Valid Palindrome
- Leetcode# 125 Valid Palindrome
- 在线用户显示,防止重复登录
- uva 572 Oil Deposits
- fibonacci数列C++语言多种实现
- Java Web开发4___HTML基本标签: 超链接标签之页面内部链接
- JAVA并发编程笔记四
- 125Valid Palindrome
- 德国技术工人工资高吗
- 设计师的名言
- 283. Move Zeroes
- php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
- Leetcode: Serialize and Deserialize Binary Tree
- iOS开发:多个按钮点击滑动效果
- 安卓设置默认应用功能失效,设置后仍然总是反复提示选择默认使用的应用
- 看“斯坦福监狱实验”有感