diff --git a/valid-palindrome/ymir0804.java b/valid-palindrome/ymir0804.java new file mode 100644 index 0000000000..368532c6ab --- /dev/null +++ b/valid-palindrome/ymir0804.java @@ -0,0 +1,28 @@ +class Solution { + public boolean isPalindrome(String s) { + String cleaned = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase(); + if (cleaned.length() == 1 || cleaned.length() == 0) { + return true; + } else if(cleaned.length() ==2) { + return cleaned.charAt(0) == cleaned.charAt(1); + } + int length = cleaned.length(); + int mid = length / 2; + + String leftPart; + String rightPart; + + if (length % 2 == 1) { + leftPart = cleaned.substring(0, mid); + rightPart = cleaned.substring(mid + 1, length); + } else { + leftPart = cleaned.substring(0, mid); + rightPart = cleaned.substring(mid, length); + } + + String reversedRightPart = new StringBuilder(rightPart).reverse().toString(); + + return leftPart.equals(reversedRightPart); + + } +}