zoukankan      html  css  js  c++  java
  • 力扣(LeetCode)验证回文串 个人题解

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

    说明:本题中,我们将空字符串定义为有效的回文串。

    示例 1:

    输入: "A man, a plan, a canal: Panama"
    输出: true
    

    示例 2:

    输入: "race a car"
    输出: false

    这题是验证回文串的一个变种,因为里面有干扰的字符串存在,不能直接判断,不过也很好解决,直接添加过滤的语句,遇到不是数字且不是字母的直接跳过,只有两边都是合法的,才进行比较。

    特别注意题意,要求忽略字母的大小写。

    代码如下:

    class Solution {
        public boolean isPalindrome(String s) {
            int left = 0, right = s.length() - 1;
            char ch1, ch2;
            while (left < right) {
                if (Character.isLetter(s.charAt(left)) || Character.isDigit(s.charAt(left))) {
                    ch1 = s.charAt(left);
                } else {
                    left++;
                    continue;
                }
                if (Character.isLetter(s.charAt(right)) || Character.isDigit(s.charAt(right))) {
                    ch2 = s.charAt(right);
                } else {
                    right--;
                    continue;
                }
                if (Character.toLowerCase(ch1) == Character.toLowerCase(ch2)) {
                    left++;
                    right--;
                }
                else
                    return false;
            }
            return true;
        }
    }
  • 相关阅读:
    gearman管理
    php运行方式
    gearman mysql持久化
    gearman安装及初次使用
    消息队列各种比较
    IOC
    post提交/文件上传服务器修改
    protobuf php
    thrift 安装介绍
    qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10409957.html
Copyright © 2011-2022 走看看