zoukankan      html  css  js  c++  java
  • 第125题:验证回文串

    一. 问题描述

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

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

    示例 1:

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

    输出: true

    示例 2:

    输入: "race a car"

    输出: false

    二. 解题思路

    本题思路:采用双指针进行求解。

    步骤一:将字符串中的大写字母全部转换成小写字母得到ss。

    步骤二:创建两个指针一个指向ss的头部,一个指向ss的尾部。

    步骤三:双指针遍历ss字符串。当遇到非字母或数字则跳过,否则进行比较两个指针指向的数值,若相同,first++,last--。否则返回false。

    步骤四:遍历完ss后,则返回true。

    三. 执行结果

    执行用时 :7 ms, 在所有 java 提交中击败了65.41%的用户

    内存消耗 :37.9 MB, 在所有 java 提交中击败了86.62%的用户

    四. Java代码

    class Solution {
        public boolean isPalindrome(String s) {
            String ss=s.toLowerCase();
            int first=0;
            int last=ss.length()-1;
            while(first<last) {
                if((ss.charAt(first)>='0'&&ss.charAt(first)<='9')||(ss.charAt(first)>='a'&&ss.charAt(first)<='z')){
                    if((ss.charAt(last)>='0'&&ss.charAt(last)<='9')||(ss.charAt(last)>='a'&&ss.charAt(last)<='z')) {
                        if(ss.charAt(first)==ss.charAt(last)) {
                            first++;
                            last--;
                        }else {
                            return false;
                        }
                    }else {
                        last--;
                        continue;
                    }
                }else {
                    first++;
                    continue;
                }
            }   
            return true;
        }
    }
  • 相关阅读:
    node mysql
    css问题
    mac 命令
    js 严格模式
    js 数组
    sass
    js 面向对象 定义对象
    response.getWriter().write("中文");乱码问题
    读取文件并找出年龄最大的N个人-兰亭集市笔试题
    阿里巴巴暑期实习生笔试
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11896229.html
Copyright © 2011-2022 走看看