码迷,mamicode.com
首页 > 其他好文 > 详细

Valid Palindrome

时间:2014-11-05 22:45:32      阅读:241      评论:0      收藏:0      [点我收藏+]

标签: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;
          
        
    }
}

 

Valid Palindrome

标签:style   blog   io   color   ar   for   sp   div   on   

原文地址:http://www.cnblogs.com/bluedreamviwer/p/4077378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!