125. 验证回文串

思路

双指针法,一个指针(i)从头,一个指针(j)从尾,进行遍历比较,当指针索引i大于指针索引j时,遍历结束。

题目中提到仅判断字母和数字且字母忽略大小写,可以借助PHP的两个内置函数实现。

  • ctype_alnum 验证字符是否仅含字母和(或)数字
  • strcasecmp 比较字符(忽略字母大小写)

复杂度

时间复杂度:O(n)

空间复杂度:O(1)

代码

class Solution {

    /**
     * @param String $s
     * @return Boolean
     */
    function isPalindrome($s) {
        $len = strlen($s);
        for($i = 0, $j = $len - 1; $i < $j;){
            if(!ctype_alnum($s[$i])) {
                $i++;
                continue;
            }

            if(!ctype_alnum($s[$j])) {
                $j--;
                continue;
            }

            if(strcasecmp($s[$i], $s[$j]) != 0) {
                return false;
            } else {
                $i++;
                $j--;
            }
        }

        return true;
    }
}

results matching ""

    No results matching ""