当前位置: 首页 > news >正文

LCR 018. 验证回文串

一、题目描述

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

本题中,将空字符串定义为有效的 回文串 。

示例 1:

输入: s = “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串
示例 2:

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

提示:

1 <= s.length <= 2 * 105
字符串 s 由 ASCII 字符组成

二、题目解析

1、双指针,思路比较简单,分别指向首尾开始遍历(循环退出条件同时适用于奇数个元素和偶数个元素)。主要考察String和StringBuilder类基本方法的使用。

class Solution {public boolean isPalindrome(String s) {StringBuilder builder = new StringBuilder();for(int i = 0;i < s.length();i++){//判断字符是数字或者字母才保存if(Character.isLetterOrDigit(s.charAt(i))){//统一转换为大写(题目要求忽略大小写)builder.append(Character.toUpperCase(s.charAt(i)));}}//双指针判断回文int i = 0,j = builder.length() - 1;while(i < j){if(builder.charAt(i) != builder.charAt(j)){return false;}i++;j--;}return true;}
}

在这里插入图片描述
总结:
1、以下是 StringBuilder 类的一些常见方法:

append(String str):将指定字符串追加到当前 StringBuilder 对象的末尾。

insert(int offset, String str):在指定位置插入指定字符串。

delete(int start, int end):删除从起始位置到结束位置(不包括结束位置)的子串。

deleteCharAt(int index):删除指定位置的字符。

replace(int start, int end, String str):用指定字符串替换从起始位置到结束位置的子串。

reverse():反转当前 StringBuilder 对象中的字符序列。

length():返回当前字符序列的长度。

charAt(int index):返回指定索引位置的字符。

substring(int start) 和 substring(int start, int end):用于获取子字符串,可以传递开始位置和结束位置。

toString():将 StringBuilder 对象转换为一个普通的不可变的 String 对象。

2、String类常用方法
在这里插入图片描述

http://www.dtcms.com/a/343291.html

相关文章:

  • VUE实现多个弹窗优先级变化实现思路
  • 技术框架搭建:支撑竞拍全流程
  • Spring Cloud系列—SkyWalking链路追踪
  • IPSec 安全基础
  • Matplotlib数据可视化实战:Matplotlib高级使用技巧与性能优化
  • GitHub Push 认证失败 fatal Authentication failed
  • 数据治理——解读56页 数据治理整体规划汇报【附全文阅读】
  • java-ArrayList的使用
  • 短波红外科研相机:开启科研新视野的利器​
  • LCR 019. 验证回文串 II
  • SpringCloudConfig配置文件本地化部署
  • 第5.1节:awk内置变量
  • MySQL诊断系列(5/6):表结构与元数据查询——快速掌握数据库“DNA”
  • 在pycharmIDE中如何快速掌握一个新模块的使用方法
  • 前端视频流处理从 0 到 “能跑”:可复制 Demo+WebGL/Worker 优化,覆盖会议 / 直播 / 监控场景
  • js来比较两个对象内容有误差异
  • 从源码中学习Java面向对象的多态
  • 通过自定义域名访问内网的web服务和tcp应用:内网ip到局域网外域名访问过程
  • 使用Docker部署Coze Studio开源版
  • (亲测)Centos7升级gcc 9
  • XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)
  • 嵌入式-中断的概念,优先级,编程-Day17
  • 高效研发管理新选择:Codes 一站式平台深度解析
  • 6.Shell脚本修炼手册---grep命令使用指南
  • 定时器(Timer)和延时器
  • 文化遗产数字化对手持SLAM设备有哪些特殊要求?
  • 使用 X11 转发服务器界面
  • linux安装mysql ndb cluster
  • 牛客:链表分割算法详解
  • Java设计模式-享元模式