diff --git a/problems/125.valid-palindrome.md b/problems/125.valid-palindrome.md index 438f92539..7886a024f 100644 --- a/problems/125.valid-palindrome.md +++ b/problems/125.valid-palindrome.md @@ -61,7 +61,7 @@ https://leetcode-cn.com/problems/valid-palindrome/description/ ## 代码 -- 语言支持:JS,C++,Python +- 语言支持:JS,C++,Python,Java JavaScript Code: @@ -160,6 +160,33 @@ class Solution: return s == s[::-1] ``` +Java Code: + +```java +class Solution { + public boolean isPalindrome(String s) { + int n = s.length(); + int left = 0, right = n - 1; + while (left < right) { + while (left < right && !Character.isLetterOrDigit(s.charAt(left))) { + ++left; + } + while (left < right && !Character.isLetterOrDigit(s.charAt(right))) { + --right; + } + if (left < right) { + if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) { + return false; + } + ++left; + --right; + } + } + return true; + } +} +``` + **复杂度分析** - 时间复杂度:$O(N)$