JAVA练习34-验证回文串

2023-11-09

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

 

前言

一、题目-验证回文串

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

1月29日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-验证回文串

1.题目描述

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。

 

示例 1:

输入: s = "A man, a plan, a canal: Panama"
输出:true
解释:"amanaplanacanalpanama" 是回文串。


示例 2:

输入:s = "race a car"
输出:false
解释:"raceacar" 不是回文串。


示例 3:

输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 "" 。
由于空字符串正着反着读都一样,所以是回文串。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

2.思路与代码

2.1 思路

1.判断输入的字符是否为空,若为空,直接输出true

2.因为回文串为左右对称相等的字符串,所以我们可以使用双指针的方法,左指针从左开始遍历字符串,右指针从最后倒序遍历字符串

3.因为题目中输入的字符串中有非字符,使用Character类中的isLetterOrDigit()函数可以判断是否为字符,当为字符是,左指针加1,右指针减一

4.使用Character类下的toLowerCase()函数将大写字符转为小写字符并比较,

5.使用双指针遍历字符,当左指针字符与右指针字符不相等时,输出false,否则为true

2.2 代码

代码如下(示例):

class Solution {
    public boolean isPalindrome(String s) {
        //空字符输出true
        if(s.length() == 0){
            return true;
        }
        //定义两个指针
        int left = 0;//左指针
        int right = s.length() - 1;//右指针

        //遍历查找
        while(left < right){
            //因为只考虑字母的情况,遇到不是字母的,指针跳过即可
            //左指针部分
            while(left < right && !Character.isLetterOrDigit(s.charAt(left))){
                left ++;
            }
            //右指针部分
            while(left < right && !Character.isLetterOrDigit(s.charAt(right))){
                right --;
            }

            //将大写转为小写,并判断左右两部分是否相等
            //如果转化后的左右两部分不相等,则直接返回false
            if(Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right)) ){
                return false;
            }

            left ++;
            right --;

        }

        return true;
    }
}

 


总结

提示:这里对文章进行总结:
 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA练习34-验证回文串 的相关文章

  • Keytool 应用程序在哪里?

    我需要在android中使用mapview控件 但我似乎不明白如何运行keytool 是用eclipse安装的吗 我好像找不到下载链接 Thanks keytool http docs oracle com javase 7 docs te
  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • HashMap不写入数据库

    我尝试在我的数据库中写入 但只写入发件人和消息 我不明白为什么会发生这种情况 我认为问题出在我使用 sendMessage 的地方 我认为问题是我没有什么可以做的读 写其他用户的主键 我在数据库中写入消息的活动 public class M
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • 在 Spring Boot Actuator 健康检查 API 中启用日志记录

    我正在使用 Spring boot Actuator APIproject https imobilenumbertracker com 拥有一个健康检查端点 并通过以下方式启用它 management endpoints web base
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文

随机推荐

  • 二叉搜索树的中序遍历为 递增序列_Go 刷 Leetcode 系列:恢复二叉搜索树

    二叉搜索树中的两个节点被错误地交换 请在不改变其结构的情况下 恢复这棵树 示例 1 输入 1 3 null null 2 1 3 2输出 3 1 null null 2 3 1 2 示例 2 输入 3 1 4 null null 2 3 1
  • 一维连续型随机变量的函数分布

    目录 a b N 2 a b N 0 1 2 N 2 e sin a b N 2 a b N 0 1 2 N 2 e sin
  • LoadRunner脚本测试——登录实践

    实习公司最近在做一款会计项目的财政管理系统 跟着测试组在做登录响应测试时 学到了不少实践经验 本文作以简单阐述和分享 通过代理服务器录制脚本 测试系统的门户必须用Chrome打开 然而测试环境lr11似乎只对IE浏览器兼容 事实上 lr与浏
  • Java入门(2) —— 变量详解、运算符、定义类和定义方法以及方法的调用

    1 变量 1 定义变量 1 声明的同时直接赋值 数据类型 变量名 值 2 先声明 后赋值 声明 数据类型 变量名 赋值 变量名 值 2 数据类型 基本数据类型 4类8种 整数 gt 直接写整数 默认就是 int byte 1个字节 shor
  • 喷水装置(一)贪心算法

    听说这是 贪心算法 的一个简单应用 虽说是简单 但是对我来说 确实不简单 说下面说有用的 题目描述 现有一块草坪 长为20米 宽为2米 要在横中心线上放置半径为Ri的喷水装置 每个喷水装置的效果都会让以它为中心的半径为实数Ri 0
  • Fire-YOLO:一种用于火灾检测的小目标检测方法

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨CY 来源丨当交通遇上机器学习 编辑丨极市平台 极市导读 本次介绍的文章是太原理工大学团队在2022年发表在 Sustainability 的关于火灾检测的小目标实
  • qiankun 常见问题集合(一)

    qiankun 常见问题集合 一 1 loader js 220 Uncaught in promise Error qiankun You need to export lifecycle functions in app4 entry
  • 在使用localstorage的时候发生了报错的解决办法

    在使用localstorage的时候 发生了报错 提示是传入的格式不正确 但是传入的是json格式 为什么不正确呢 1 在localStorage setItem 过程中 传进的参数需使用JSON tringfy 方法转成json格式的字符
  • 用链式线性表实现两个一元多项式相加

    include
  • springboot+vue跨域(草稿箱中翻出来的)

    第一种 新建 GlobalCorsConfig 类 import org springframework context annotation Bean import org springframework context annotati
  • Copilot是GPT的理想应用模式吗?

    自OpenAI发布ChatGPT以来 LLM持续火热 各大公司纷纷入场 但近一段时间以来 我观测到的LLM应用场景 基本都是Copilot的形式 即以对话为基础的辅助应用 尽管体验起来十分的高大上 但我能明确感受到 这种Copilot的形式
  • pyspark中文api

    内容基于官网pyspark SparkSQL官方文档翻译及拓展 官方文档 https spark apache org docs latest api python reference pyspark sql index html 具体使用
  • Eclipse上的HTML/JSP/XML编辑器插件Eclipse HTML Editor

    官网 http amateras sourceforge jp cgi bin fswiki en wiki cgi page EclipseHTMLEditor Eclipse HTML Editor is an Eclipse plug
  • js的三种弹窗

    1 alert 提示框 用途 一般用于提示信息或者警告信息的展示 2 confirm option 确认 或 取消 消息框 用途 用户点击 确定 或 取消 按钮时 弹窗会返回一个布尔值 确认返回true 取消返回false 由此可以判断用户
  • adb shell 执行sh脚本_程序开发——Shell脚本

    Shell 是一个用 C 语言编写的程序 它是用户使用 Linux 的桥梁 Shell 既是一种命令语言 又是一种程序设计语言 Shell 是指一种应用程序 这个应用程序提供了一个界面 用户通过这个界面访问操作系统内核的服务 Ken Tho
  • 深入浅出 Spark Thrift Sever

    一 Spark Thrift Sever是什么 Spark借助Hive的Metadata Service可以实现通过命令行客户端工具执行Sql语句 就像是Hive或者Mysql的命令行工具一样 称之为Spark CLI Spark CLI适
  • 基于GMap.Net的地图解决方案

    一 地图的加载与显示 关于GMap的介绍与使用可以看我以前的文章 GMap Net开发之在WinForm和WPF中使用GMap Net地图插件 GMap Net是 Net下一个地图控件 可以基于Http协议加载各个公司的地图 如Google
  • 如何设计一个秒杀系统

    什么是秒杀 秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到 对于电商网站中一些稀缺或者特价商品 电商网站一般会在约定时间点对其进行限量销售 因为这些商品的特殊性 会吸引大量用户前来抢购 并且会在约定的时间点同时在
  • MinGW-W64下载、配置教程

    注意 本文采用的操作系统 Windows7 64位 注 文章原创 配图的知乎水印也是笔者账号 一 下载与配置 使用浏览器访问 MinGW W64 图1 找到图2所示区域 根据需求点击一项 下载压缩包 图2 解压下载的压缩包 内容如图3 图3
  • JAVA练习34-验证回文串

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 题目 验证回文串 1 题目描述 2 思路与代码 2 1 思路 2 2 代码 总结 前言 提示 这里可以添加本文要记录的大概内容 1月29日练习内容 提示 以下