判断其是否为一个回文串,java实现

给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。

您在真实的面试中是否遇到过这个题? Yes
样例
"A man, a plan, a canal: Panama" 是一个回文。

"race a car" 不是一个回文。

注意
你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。

在这个题目中,我们将空字符串判定为有效回文。

挑战
O(n) 时间复杂度,且不占用额外空间。
package huiwenchuan_1;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		String str = input.nextLine();
		System.out.println(isHuiWen(str));
	}

	public static boolean isHuiWen(String s) {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < s.length(); i++) {
			if (Character.isLetter(s.charAt(i))
					|| Character.isDigit(s.charAt(i))) {
				sb.append(s.charAt(i));

			}
		}
		String str2 = sb.toString().toLowerCase();
		System.out.println(str2);
		sb.delete(0, sb.length());
		for (int j = 0; j <= (str2.length() + 1) / 2 - 1; j++) {
			sb.append(str2.charAt(j) == str2.charAt(str2.length() - 1 - j));

		}// for
		return !sb.toString().contains("f");

	}// /isHuiWen

}
A man, a plan, a canal: Panama
amanaplanacanalpanama
true

你可能感兴趣的:(判断其是否为一个回文串,java实现)