【Easy】415. Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Notice:
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.
Example:
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
解题思路
用StingBuilder的reverse方法。注意StringBuilder的append是不会像s+"s"这种方式一样创建新的对象并占用新的内存的,所以可以保证内存空间不泄漏。
核心代码
StringBuilder sb = new StringBuilder();
String ss = s.toLowerCase();
for (int i = 0; i < ss.length(); i++){
if (ss.charAt(i) >= 'a' && ss.charAt(i) <= 'z'|| (ss.charAt(i) >= '0' && ss.charAt(i) <= '9')) sb.append(ss.charAt(i));
}
String se = sb.toString();
StringBuilder re = sb.reverse();
return (se.equals(re.toString()));
时间空间复杂度
O(n) + S(n)
n为字符串长度
Last updated