史诗级回文串:A man, a plan, a canal: Panama
(去掉标点符号再看看)
JAVA
class Solution {
public boolean isPalindrome(String s) {
StringBuffer ans = new StringBuffer();
int len = s.length();
for (int i = 0; i < len; ++i) {
char tmp = s.charAt(i);
if (Character.isLetterOrDigit(tmp)) {
ans.append(Character.toLowerCase(tmp));
}
}
StringBuffer ans_reverse = new StringBuffer(ans).reverse();
return ans.toString().equals(ans_reverse.toString());
}
}
七个函数(字面意思):
toLowerCase
toUpperCase
isLetterOrDigit
isLowerCase
isUpperCase
isDigit
isLetter
S t r i n g String String 与 S t r i n g B u f f e r StringBuffer StringBuffer 的区别:
① 简单地说,就是一个变量和常量的关系
② 赋值时一个用
+
+
+ 号,另一个用 .append()
String a = "123", b = "456";
String c = a + b;
StringBuffer d = new StringBuffer();
d.append(a + b);
System.out.println(c);
System.out.println(d);
output:
123456
123456
Python
class Solution:
def isPalindrome(self, s: str) -> bool:
ans = "".join(ch.lower() for ch in s if ch.isalnum())
return ans == ans[::-1]
这是什么神仙写法,爱了爱了
七个函数(字面意思):
lower
upper
isalnum
isdigit
isalpha
islower
isupper