标签:style color io ar java strong sp on amp
题目:给定一个字符串,判断字符串是否为回文串(只考虑字符和数字,忽略大小写)
算法:设置两个索引,分别从两端向中间扫描,扫描的时候忽略字符和数字以外的一切。
需要注意的是,空字符串也是回文串,而且因为只考虑字符和数字,所以“*/*-”被视为空字符串,所以被认为是回文串
public class Solution { /** * Check if string is palindrome. * <p>Empty String is palindrome, * because palindrome only consider alphanumeric characters, * so any string like "*-+*" is consider to be palindrome. * @param s * @return */ public boolean isPalindrome(String s) { if (null == s) { return false; } if (s.equals("")) { return true; } boolean isPalindrome = true; int iHead = 0; int iTail = s.length() - 1; char[] strs = s.toLowerCase().toCharArray(); while (iHead <= iTail) { while (iHead<strs.length && !Character.isLetter(strs[iHead]) && !Character.isDigit(strs[iHead])) { ++iHead; } while (iTail >= 0 && !Character.isLetter(strs[iTail]) && !Character.isDigit(strs[iTail])) { --iTail; } if (iHead > iTail) { break; } else if (strs[iHead] != strs[iTail]) { return false; } ++iHead; --iTail; }// end of while return isPalindrome; } }
标签:style color io ar java strong sp on amp
原文地址:http://blog.csdn.net/yeweiouyang/article/details/40316521