博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回文字验证
阅读量:6233 次
发布时间:2019-06-21

本文共 1680 字,大约阅读时间需要 5 分钟。

hot3.png

原题

  Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

  For example,
  "A man, a plan, a canal: Panama" is a palindrome.
  "race a car" is not a palindrome.
  Note:
  Have you consider that the string might be empty? This is a good question to ask during an interview.
  For the purpose of this problem, we define empty string as valid palindrome.

题目大意

  给定一个字符串,判断它是否是回文字符串,仅考虑字母,并且忽略大小写。

解题思路

  使用首尾指针,分别找到第一个符合条件的位置,进行比较,如果相等就进行下一组比较,不相等就返回false,直到所有的字母都处理完。

代码实现

实现类

public class Solution {    public boolean isPalindrome(String s) {        if (s == null) {            return false;        }        int left = 0;        int right = s.length() - 1;        int delta = 'A' - 'a';        char l;        char r;        while (left < right) {            while (left < s.length() && !isAlphanumericCharacters(s.charAt(left))) { // 从左向右找数字与字母                left++;            }            while (right >= 0 && !isAlphanumericCharacters(s.charAt(right))) { // 从右向左找数字与字母                right--;            }            if (left < right) {                l = s.charAt(left);                r = s.charAt(right);                if (l == r || l - r == delta || r - l == delta) {                    left++;                    right--;                } else {                    return false;                }            }        }        return true;    }    /**     * 判断是否是字母或者数字     *     * @param c 待判断的数字     * @return 判断结果     */    private boolean isAlphanumericCharacters(char c) {        return c >= '0' && c <= '9' || c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';    }}

转载于:https://my.oschina.net/u/2822116/blog/810140

你可能感兴趣的文章
tps协议和onvif协议_安全研究人员警告WS-Discovery协议被被用于大规模DDoS攻击
查看>>
扫地机器人半湿拖布_米家扫拖机器人评测:能扫能拖,一次性搞定
查看>>
量纲对回归结果的影响_周度专题 | 纯碱现货价格影响因素的统计分析(上)
查看>>
tensorflow模型保存后继续训练_Tensorflow笔记:模型保存、加载和Fine-tune
查看>>
估计一些物品的质量_大部分物流运输管理中心都会派送的物品里应用了rfid
查看>>
分数的大小比较优秀教案_20分钟如何写好教师资格证面试教案?
查看>>
纵向取模需要自己倒叙吗_婚后的女人需要努力吗?看完这四点,每个人都会有自己的答案...
查看>>
导入公用方法_销售明细导入开票模块的产品思考
查看>>
主从切换_SpringBoot 多数据源配置+动态数据源切换+多数据源事物配置实现主从数据库存储分离...
查看>>
变形 圆形_「Photoshop教程」使用变形工具和扭曲滤镜实现极坐标照片效果
查看>>
如何使用 mega unity_MEGA构建系统发育树,以及EvolView &amp; iTOL 的入门心得.
查看>>
华三交换机mode是什么意思_弱电工程师忘记了交换机和路由器的密码后如何处理?...
查看>>
2019 coling 论文列表_COLING2020-事件抽取/关系抽取/NER/少(零)样本 论文分类整理
查看>>
培养逻辑思维的app_数学逻辑思维app哪个好
查看>>
word加载外接程序出错_COM加载项的常见异常
查看>>
冒烟的意思_【冒烟】的意思是什么?【冒烟】是什么意思?
查看>>
os什么意思python_Python中import os是什么意思?
查看>>
初识python评课稿_GitHub - jingning42/ustc-course: USTC 评课平台
查看>>
html弄多个按钮_HTML表单上的多个提交按钮 - 将一个按钮指定为默认按钮
查看>>
django判断checkbox是否选中_django视图层之请求与响应
查看>>