美文网首页
1. 回文字符串判断(AlgoCasts)

1. 回文字符串判断(AlgoCasts)

作者: 面向全麦面包编程 | 来源:发表于2020-03-01 21:13 被阅读0次

描述

这个题目说的是,给你一个字符串,你要判断它是否是回文字符串。字符串里只考虑字母和数字,其它的字符可以无视。另外,对于字母,可以忽略大小写。
例如:" caa c "就是回文字符串。

注意点

  • 判断字符是否是字母和数字
  • 非Alphanumeric可忽略
  • 对于字母可以忽略大小写

Tips

  • 双指针"逼近"

代码引用

/**
 * 判断是否是回文字符串
 */
public class isPalindrome {
    /**
     * 判断字符是否是数字或者字母
     *
     * @param c 字符
     */
    private static Boolean isAlphanumeric(char c) {
        return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= 0 && c <= 9));
    }

    /**
     * 判断两个字母忽略大小写后是否一致
     *
     * @param a 字母
     * @param b 字母
     */
    private static Boolean isEqualIgnoreCase(char a, char b) {
        if (a >= 'A' && a <= 'Z') a += 32;
        if (b >= 'A' && b <= 'Z') b += 32;
        return a == b;
    }

    /**
     * 判断是否是回文字符串
     * T:O(n^2)  S:O(1)
     *
     * @param s 字符串
     */
    public static boolean isPalindrome(String s) {
        //边角条件
        if (s == null || s.length() == 0) return true;
        int i = 0, j = s.length() - 1;
        for (; i < j; ++i, --j) {   //时刻牢记i<j条件,尤其是内部循环
            while (i < j && !isAlphanumeric(s.charAt(i))) i++;
            while (i < j && !isAlphanumeric(s.charAt(j))) j--;
            if (i < j && !isEqualIgnoreCase(s.charAt(i), s.charAt(j))) return false;
        }
        return true;
    }

    public static void main(String[] args) {
        System.out.println(isPalindrome(" caa c "));
    }
}

相关文章

  • 1. 回文字符串判断(AlgoCasts)

    描述 这个题目说的是,给你一个字符串,你要判断它是否是回文字符串。字符串里只考虑字母和数字,其它的字符可以无视。另...

  • 字符串进阶

    1.反转字符串 2.字符串包含问题 3.字符串转数字 4.判断是否为回文判断一条单向链表是不是“回文” 分析:对于...

  • 字符串问题合集

    1. 验证回文串 题目描述: 输入一个字符串,只关注字母和数字,判断字符串是否为回文串。空字符串也可以认为是回文串...

  • 算法精选题总结之字符串类

    1.字符串旋转2.字符串包含3.字符串的全排列4.字符串转换成整数5.回文判断6.最长回文子串 1.字符串旋转 给...

  • 2020-04-26

    题目:判断是不是回文字符串

  • C# 判断字符串是否是回文字符串(单链表)

    回文字符串: ABCDCBA ABCDDCBA 两种都属于回文字符串; 如何判断一个字符串是否是否回文: 使用快慢...

  • 前端-一些基础问题

    1.实现一个函数,判断输入是不是回文字符串;注:回文字符串:是一个正读和反读都一样的字符串,比如“level”或者...

  • 字符串面试题总结

    规则判断 判断字符串是否符合整数规则 判断字符串是否符合浮点数规则 判断字符串是否符合回文字符串规则 数字运算in...

  • 035-判断一个字符串是否是回文

    描述 判断一个由字母、数字和空格组成的字符串是否是回文。 约束: ​ 空字符串为回文; 示例: ​ ...

  • 最长回文子串

    判断是否是回文字符串 获取所有可能子串 获取所有回文子串 进阶

网友评论

      本文标题:1. 回文字符串判断(AlgoCasts)

      本文链接:https://www.haomeiwen.com/subject/sttlkhtx.html