LeetCode

来源:互联网 发布:java 如何encode 编辑:程序博客网 时间:2024/06/15 01:37

0. 问题

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.给你一个字符串, 判定它是否是回文(只统计字母、数字,其他字符请忽略)。

1. 例子

"A man, a plan, a canal: Panama"is a palindrome."race a car"is not a palindrome.

2. 笔记

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. 

3. 解答

import java.util.*;public class Solution {    public static boolean isPalindrome(String s) {        s = s.toLowerCase();        StringBuffer sb = new StringBuffer();        // 先去掉标点等字符        for (int i = 0; i < s.length(); i++ ) {            char ch = s.charAt(i);            if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z')) {                sb.append(ch);            }        }        // 字符串回文判断        for (int i = 0; i < sb.length()/2; i++) {            if (Objects.equals(sb.charAt(i), sb.charAt(sb.length()-1-i))) {                continue;            } else return false;        }        return true;    }}
原创粉丝点击