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;
        }
    }
  • 相关阅读:
    C++/C编程指南之基本语句
    利用Lucene.net对附件做搜索
    验证码的破解思路!
    javascript中replace的正则表达式语法
    让数据库访问组件支持Using
    C#读写文件总结
    net use命令详细解释
    利用SQL语句清理日志
    彻底修改Google Chrome浏览器的安装目录
    oracle sqlplus 常用命令大全
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11896229.html
Copyright © 2011-2022 走看看