验证回文字符串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
1 2
|
输入: "A man, a plan, a canal: Panama" 输出: true
|
示例 2:
1 2
|
输入: "race a car" 输出: false
|
解法:
用两个指针一个放在头,一个放在屁股,比较就行。这题比较麻烦的是只考虑字母和数字字符,可以忽略字母的大小写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
public static boolean isPalindrome(String s) { if (s == null) { return false; } StringBuilder s1 = new StringBuilder(); int i = 0; //大写转化为小写 String str=s.toLowerCase(); //去除除去字母和数字字符 while (i<str.length()) { if (str.charAt(i)>='a'&&str.charAt(i)<='z'||(str.charAt(i)<='9'&&str.charAt(i)>='0')){ s1.append(str.charAt(i)); } i++; } int j = s1.length() - 1; int m=0; while (m < j) { if (s1.charAt(j) != s1.charAt(m)) { return false; } m++; j--; } return true; }
|
近期评论