标签:style blog io color ar for sp div on
一开始非常天真的利用2次for循环,依次剔除其中的非英文字符,一次用来比较,但是后来显示超时,没办法,只能把两次合并为一次。qishifdsfd
。其实我是最厌恶这种题目的,要求不清,你以为有效字符只是英文字母,结果运行一遍才发现竟然还有数字,只能接着改。
ac的代码:
public class Solution { boolean isalpha(char ch) { if (((int) ch >= 97 && (int) ch <= 122)) { return true; } else { return false; } } boolean isdigit(char ch) { if (((int) ch >= 48 && (int) ch <= 57)) { return true; } else { return false; } } public boolean isPalindrome(String s) { s=s.trim(); if(s.length()==0){ return true; } s = s.toLowerCase(); int qian = 0; int hou = s.length() - 1; while (qian < hou) { if ( (isalpha(s.charAt(qian))||isdigit(s.charAt(qian)))&&(isalpha(s.charAt(hou))||isdigit(s.charAt(hou))) ) { // 如果两个都是英文字符或数字才能进行比较 if (s.charAt(qian) != s.charAt(hou)) { return false; } qian = qian + 1; hou = hou - 1; } else if ( !isalpha(s.charAt(qian))&&(!isdigit(s.charAt(qian))) ) { // 如果前面的不是英文字符,则略过 qian = qian + 1; } else if ( !isalpha(s.charAt(hou))&&(!isdigit(s.charAt(hou))) ) { // 如果前面的不是英文字符,则略过 hou = hou - 1; } } return true; } }
标签:style blog io color ar for sp div on
原文地址:http://www.cnblogs.com/bluedreamviwer/p/4077378.html