Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
// Valid Palindrome - https://leetcode.com/problems/valid-palindrome/ class Solution { // Time Complexity: O(n) // Space Complexity: O(n) // public boolean isPalindrome(String s) { // s = s.toLowerCase(); // StringBuilder sb = new StringBuilder(); // for(int i = 0; i < s.length(); i++) { // Character c = s.charAt(i); // if(Character.isLetterOrDigit(c)) { // sb.append(c); // } // } // String toCheck = sb.toString(); // int i = 0, j = toCheck.length() - 1; // while(i < j) { // if(toCheck.charAt(i) != toCheck.charAt(j)) { // return false; // } // i++; // j--; // } // return true; // } // Time Complexity: O(n) // Space Complexity: O(n) // Similar to above but compact code // public boolean isPalindrome(String s) { // StringBuilder sb = new StringBuilder(); // for(int i = 0; i < s.length(); i++) { // Character c = s.charAt(i); // if(Character.isLetterOrDigit(c)) { // sb.append(Character.toLowerCase(c)); // } // } // return sb.toString().equals(sb.reverse().toString()); // } // Two pointers optimized // Time Complexity: O(n) // Space Complexity: O(1) public boolean isPalindrome(String s) { int l = 0, r = s.length() - 1; while (l < r) { while (l < r && !alphaNum(s.charAt(l))) { l++; } while (r > l && !alphaNum(s.charAt(r))) { r--; } if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) { return false; } l++; r--; } return true; } public boolean alphaNum(char c) { return (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '0' && c <= '9'); } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)