首页 > 代码库 > Valid Palindrome
Valid Palindrome
题目:给定一个字符串,判断字符串是否为回文串(只考虑字符和数字,忽略大小写)
算法:设置两个索引,分别从两端向中间扫描,扫描的时候忽略字符和数字以外的一切。
需要注意的是,空字符串也是回文串,而且因为只考虑字符和数字,所以“*/*-”被视为空字符串,所以被认为是回文串
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; } }
Valid Palindrome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。