`
huntfor
  • 浏览: 201198 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[leetcode]Valid Palindrome

 
阅读更多

事实证明,是时间而不是tolowcase的问题。新博文地址:[leetcode]Valid Palindrome

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.

 alphanumeric坑爹啊,我还以为是字母,居然是坑爹的字母数字,第一次超时,用了toLowerCase,估计这个方法比较坑,最后还是老老实实手动判断大小写。

  public boolean isPalindrome(String s) {
    	if(s == null || s.length() == 0){
    		return true;
    	}
    	StringBuilder sb = new StringBuilder();
    	for(int i = s.length() - 1 ;i >= 0; i--){//这里可以优化,无需过滤,遇到非法字符跳过
    		if((s.charAt(i) >= '0' && s.charAt(i) <= '9')||(s.charAt(i) >= 'a'  && s.charAt(i) <= 'z' )|| (s.charAt(i) >= 'A'  && s.charAt(i) <= 'Z' )){
    			sb.append(s.charAt(i));
    		}	
    	}
    	s = sb.toString();
    	for(int i = 0 ; i < s.length() / 2; i++){
    		if(s.charAt(i) != s.charAt(s.length() - 1 - i) && s.charAt(i) != s.charAt(s.length() - 1 - i) + 32 && s.charAt(i) != s.charAt(s.length() - 1 - i) - 32){
    			return false;
    		}
    	}
    	return true;
    }

 

 

分享到:
评论

相关推荐

    python-leetcode题解之125-Valid-Palindrome

    python python_leetcode题解之125_Valid_Palindrome

    js-leetcode题解之125-valid-palindrome.js

    javascript js_leetcode题解之125-valid-palindrome.js

    javalruleetcode-LeetCode:LeetCode算法问题

    Palindrome LeetCode 167 Two Sum II - Input array is sorted LeetCode 344 Reverse String LeetCode 345 Reverse Vowels of a String 2 字符串 编号 题目 LeetCode 3 Longest Substring Without Repeating ...

    LeetCode_java_leetcode_刷题_

    3. **字符串处理**:Java中的String类是常考主题,如"Valid Palindrome"要求判断一个字符串是否为回文,这涉及字符串的反转和比较操作。 4. **排序与查找**:快速排序、归并排序、二分查找等经典算法经常出现在...

    LeetCode 刷题笔记 with Java.zip

    "Valid Palindrome"(有效的回文串)则需要理解双指针法和忽略特定字符的策略。 最后的暗黑版《LeetCode 刷题笔记 with Java 51-100(暗黑版).pdf》可能包含了一些高级解法或者优化后的实现,帮助开发者提升代码...

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    Leetcode 题解.pdf

    例如 Leetcode 的 680 题 Valid Palindrome II(Easy),我们可以使用双指针来判断一个字符串是否为回文字符串。 在这个题目中,我们可以使用双指针指向字符串的头尾两个元素,一个指针从头向尾遍历,一个指针从尾...

    erlang入门级练习:LeetCode OJ问题的部分erlang 源码

    我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的... "valid_palindrome.erl" 个人认为dungeon_game这个题目解题逻辑很体现erlang的函数式的思维逻辑

    leetcode刷题列表

    例如,“Wildcard Matching”和“Valid Palindrome II”这类题目要求考虑通配符或特殊字符的存在,增加了问题的复杂性。在处理这类问题时,了解API的使用、忽略字符大小写和字符编码差异是十分重要的。 最后,树...

    Leetcode book刷题必备

    4. Valid Palindrome:判断一个字符串是否是回文,忽略大小写和非字母数字字符。 5. Implement strStr():实现字符串查找功能,返回子字符串在字符串中的起始索引。 6. Reverse Words in a String:翻转字符串中的...

    LeetCode 刷题汇总1

    * 回文数(Palindrome Number):判断数字是否为回文数。 3. 数学运算: * 两个排序数组的中位数(Median of Two Sorted Arrays):计算两个排序数组的中位数。 * 整数到罗马(Integer to Roman):将整数转换为...

    leetcode中国-leetcode:leetcode刷题

    Palindrome Implement strStr() String to Integer (atoi) addBinary longestPalindrome maximal rectangle :dp问题,较难 largestRectangleArea 求直方图的最大面积,左右两次扫面+剪枝优化 Valid Parentheses 用栈...

    leetcode不会-ValidPalindrome:这是我在Python中针对LeetCode上的ValidPalindrome问题的解决方

    Valid Palindrome 问题的解决方案。 首先,我将给定字符串中的所有字符都小写,这样就不会有任何违规行为。 然后我创建两个空数组。 在一个数组中,我将给定字符串的所有字母数字值附加到该数组中。 在第二个中,我...

    leetcode卡-LeetCode:LeetCode题解

    Palindrome :star: 有效回文,小写字母转换 0005 Longest Palindromic Substring :star: :star: :star: 最长回文子串,Manacher算法 0010 RegularExpressionMatching :star: :star: :star: 正则表达式匹配,dp 0012 ...

    leetcode516-Lcode:代码

    leetcode 516 8/13 - 8/18 周:leetcode#: ...Valid Palindrome 28. Implement strStr() 5. Longest Palindromic Substring option: 516. Longest Palindromic Subsequence string replacement strStr II 链接:

    leetcode分类-leetcode:leetcode刷题(中等难度分类)

    字符串处理题目也是LeetCode的重要部分,例如"Reverse Words in a String"(翻转字符串中的单词)和"Valid Palindrome"(验证回文串)。这些题目通常涉及到字符串的遍历、分割、比较以及特殊字符的处理。 四、位...

    算法刷题笔记leetcode/lintcode

    - Valid Palindrome(回文字符串验证) - Longest Palindromic Substring(最长回文子串) - Space Replacement(URL化) - Wildcard Matching(通配符匹配) - Length of Last Word(最后一个单词的长度) - ...

    算法-leetcode-剑指offer上的题很多

    - **验证回文字符串(Valid Palindrome)**: 判断一个字符串是否是回文。 - **最长回文子串(Longest Palindromic Substring)**: 找出字符串中最长的回文子串。 - **通配符匹配(Wildcard Matching)**: 实现通配符‘*’...

    leetcode浇花-LCSolutions:我的力扣解决方案

    leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer #0009 - Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates...

Global site tag (gtag.js) - Google Analytics