zoukankan      html  css  js  c++  java
  • Valid Palindrome

    leetcode:https://oj.leetcode.com/problems/

    今天A了一个Easy类型的,主要是判断一个字符串是否是回文。东平西凑的还是给弄好了,具体可看下面的要求,或者直接去网站上看也行

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

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

    Note:
    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.

     1 public class Solution {
     2     public boolean isPalindrome(String str){
     3         char array[] = str.toCharArray();
     4         int i = 0;
     5         int j = array.length -  1;
     6         boolean isPal = true;
     7         if(str.length() == 0)
     8             return true;
     9         else if(str.length() == 1)
    10             return true;
    11         while(i <= j){
    12             while(!isNumOrAlp(array[i++]) && i < array.length);
    13             while(!isNumOrAlp(array[j--]) && j >= 0);
    14             i--;
    15             j++;
    16             if(!isEqual(array[i], array[j]))
    17             {
    18                 isPal = false;
    19                 break;
    20             }
    21             i++;
    22             j--;
    23         }
    24         if(isPal)
    25             return true;
    26         
    27         else        
    28             return false;
    29         
    30     }
    31     public boolean isNumOrAlp(char ch){
    32         if(ch >= '0' && ch <= '9')
    33             return true;
    34         else if(ch >= 'a' && ch <= 'z')
    35             return true;
    36         else if(ch >= 'A' && ch <= 'Z')
    37             return true;
    38         else
    39             return false;
    40     }
    41     public boolean isEqual(char ch1,char ch2){
    42         if(0 == ch1 - ch2)
    43             return true;
    44         else if(32 == Math.abs(ch2 - ch1))
    45             return true;
    46         else if(!isNumOrAlp(ch1) && !isNumOrAlp(ch2)){
    47             return true;
    48         }
    49         else
    50             return false;
    51     }
    52 }

    这个还是比较简单的,所以就没注释了。很多细节的地方需要注意,oj系统给出错误信息都能很好定位问题在哪儿

  • 相关阅读:
    图片一句话木马简单制作方法
    kali各工具使用介绍
    隐写工具zsteg安装及使用教程
    内网渗透中mimikatz的使用
    kali meterpreter中mimikatz模块获取密码
    一个恐怖份子上传了这张照片到社交网络。里面藏了什么信息?
    攻防世界MISC进阶之签到题
    EMC存储重装系统分区丢失恢复方法
    服务器数据迁移方法
    教您分辨U盘不能识别是哪儿坏了
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4044723.html
Copyright © 2011-2022 走看看