力扣L12--- 125验证回文串(java版)-2024年3月15日

1.题目

在这里插入图片描述

2.知识点

注1:在 Java 中,toString() 方法用于将对象转换为字符串表示形式。对于数组对象,toString() 方法将返回数组的字符串表示形式,其中包含数组中每个元素的字符串表示形式,以逗号分隔,并且包含在方括号中。
//toString 字符变成字符串

// 测试示例char[] s = {'H', 'e', 'l', 'L', 'o'};solution.toLowerCase(s);System.out.println(Arrays.toString(s));// 输出 ["h", "e", "l", "l", "o"]

注2:if (Character.isUpperCase(s[i])) // 检查字符是否为大写字符
s[i] = Character.toLowerCase(s[i]); // 将大写字符转换为小写字符

将字符数组中的所有大写字符转换为小写字符 步骤
用Character.isUpperCase(s[i])查找字符是不是大写的
再用Character.toLowerCase(s[i]) 将大写字符换成小写字符

注3:并移除所有非字母数字字符之后

Character.isLetterOrDigit(s[i]) 是 Java 中的一个方法调用,用于检查给定的字符 s[i] 是否是字母或数字字符。
具体来说,Character.isLetterOrDigit() 方法返回一个布尔值,表示给定的字符是否是字母或数字字符。如果字符是字母(大写或小写)或数字字符,则返回 true,否则返回 false。

import java.util.Arrays;public class Solution {public static void main(String[] args) {char[] s = {'H', 'e', 'l', 'l', 'o', '!', '2', '#', 'w', 'o', 'r', 'l', 'd'};removeNonAlphanumeric(s);System.out.println(Arrays.toString(s)); // 输出 ["H", "e", "l", "l", "o", "2", "w", "o", "r", "l", "d"]}public static void removeNonAlphanumeric(char[] s) {int count = 0;for (int i = 0; i < s.length; i++) {if (Character.isLetterOrDigit(s[i])) {}}Arrays.fill(s, count, s.length, '\0'); // 将剩余部分填充为'\0',可选操作,不影响结果}
}

注4:**count++ 是一个后缀递增操作符。它的作用是先将 count 的当前值用于赋值给 s[i],然后再将 count 的值递增 1。**这样,s[i] 就被赋值为 s[count] 的当前值,然后 count 递增,指向下一个位置。
所以,s[count++] = s[i] 的含义是将字符数组 s 中的第 i 个位置的字符赋值给 s 中的第 count 个位置,并将 count 递增。这样就实现了将字母或数字字符移到数组的前面。

注5:Java 中的字符串是不可变的,所以您不能直接对字符串进行修改。需要使用 StringBuilder 或者其他可变的数据结构来实现字符串的修改操作。
Character.isUppercase(s[i]) 是错误的方法调用,应该是 Character.isUpperCase(s.charAt(i))。
Character.isLetterorDigit(s[i]) 也是错误的方法调用,应该是 Character.isLetterOrDigit(s.charAt(i))。
Character.toLowecase(s[i]) 是错误的方法调用,应该是 Character.toLowerCase(s.charAt(i))。
cnt[i++]=s[i] 是错误的用法,因为 cnt 应该是一个整数变量,而不是数组。

注6:for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (Character.isLetterOrDigit(ch)) {
sb.append(Character.toLowerCase(ch));
}
}

        StringBuilder sb = new StringBuilder();// 将字符串转换为只包含字母数字字符的形式,并转换为小写for (char ch : s.toCharArray()) {if (Character.isLetterOrDigit(ch)) {sb.append(Character.toLowerCase(ch));}}

注6:回文串用左右指针,然后再用charAt()方法

3.代码实现

class Solution {public boolean isPalindrome(String s) {StringBuilder sb=new StringBuilder();//StringBuilder存储的是可变的字符结构for(int i=0;i<s.length();i++)//将所有大写字符转换为小写字符、并移除所有非字母数字字符之后{char ch=s.charAt(i);//字符if(Character.isLetterOrDigit(ch))//判断是不是字符{ sb.append(Character.toLowerCase(ch));}}//判断是不是回文串int left=0;//左指针指向起始位置int right=sb.length()-1;//右指针指向末尾位置while(left<right){if(sb.charAt(left)!=sb.charAt(right)){return false;}left++;right--;}return true;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础入门 --- 1-2.字面量

文章目录 Python基础入门第一章&#xff1a;1.1 第一个python程序 第二章 &#xff1a;2.1 字面量2.2 常用的值类型2.3 字符串2.3.1 三种定义方式2.3.2 引号嵌套2.3.3 字符串拼接2.3.4 字符串格式化2.3.5 格式化的精度控制数字精度控制&#xff1a; 2.3.6 字符串格式化方式22.3…

CentOS7 部署 k8s

准备两台虚拟机192.168.152.129192.168.152.130更改主机名192.168.152.129&#xff1a;hostnamectl set-hostname k8s-masterhostnamectl192.168.152.130&#xff1a;hostnamectl set-hostname k8s-node1hostnamectl master节点配置 1.配置hosts 在两台节点上执行vim /etc/h…

金蝶云星空,怎么做BI数据可视化分析?

金蝶云星空是一个流程管理方面的软件&#xff0c;如果想要做BI数据可视化分析&#xff0c;还就需要一套BI方案&#xff0c;即一套奥威BI软件金蝶云星空BI方案。 奥威BI软件&#xff0c;负责提供平台和技术&#xff1b;金蝶云星空BI方案&#xff0c;则提供标准化的数据分析模型…

「HarmonyOS」下拉刷新组件使用详情

前言&#xff1a;在客户端开发过程中&#xff0c;经常会出现下拉刷新的功能&#xff0c;用于重新加载数据和加载更多数据&#xff0c;通过查找相关资料&#xff0c;查找到一个refresh下拉刷新的第三方库&#xff0c;今天主要介绍一下其中比较常用的RefreshLayout形式下拉刷新使…

K8S日志收集方案-EFK部署

EFK架构工作流程 部署说明 ECK (Elastic Cloud on Kubernetes)&#xff1a;2.7 Kubernetes&#xff1a;1.23.0 文件准备 crds.yaml 下载地址&#xff1a;https://download.elastic.co/downloads/eck/2.7.0/crds.yaml operator.yaml 下载地址&#xff1a;https://download.e…

性能出众的一区新算法|星鸦优化算法NOA原理及代码实现(Matlab)

文章来源于我的个人公众号&#xff1a;KAU的云实验台&#xff0c;主要更新智能优化算法的原理、应用、改进 CEC2005中的测试 本文KAU将介绍一个2023年发表在1区期刊KBS上的优化算法——星鸦优化算法(Nutcracker Optimization Algorithm&#xff0c;NOA)[1] 该算法由Mohamed …

一直被模仿,从未被超越

德国威步以及卓越的创新能力&#xff0c;成为业内不断被模仿的对象。德国威步自1989年创立35年以来&#xff0c;一直坚定地在软件保护及授权管理领域努力耕耘并不断创新和改进&#xff0c;拥抱互联网及软件开发技术的革新&#xff0c;完美融入并发展&#xff0c;虽然被其他竞争…

Github 2024-03-15 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Python项目3非开发语言项目2PHP项目1C#项目1Rust项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476…

通过Rothko罗斯科绘画学习CSS盒子

本文章属于学习笔记&#xff0c;在https://www.freecodecamp.org/chinese/learn/2022/responsive-web-design/中练习 1、使用 padding 简写属性来增加两个元素之间的空间到。 .canvas {} .frame { padding:50px; }2、overflow 设置为 hidden - 将画布更改回其原始尺寸。overfl…

Discourse 分类图片

我们可以在 Discourse 上为分类添加图片。 进入分类编辑界面&#xff0c;然后选择 Image 标签。 在 Images 标签下&#xff0c;上传分类需要的图片。 图片大小 图片的大小是 Discourse 进行控制的&#xff0c;高度为 150 PX 像素。 如果上传的图片大于 150 px 的高度像素&…

开源堡垒机Jumpserver安装教程

前言:堡垒机的应用场景 公司内有若干台服务器,既有windows的也有linux的, 提供有ERP,OA,Web,报表等等各种服务,往往需要远程登录到服务器上去做运维,但如果给root或者administrator权限,很容易出现不知道谁操作了的问题.如果不同人设置不同账号,又账号过多,权限不足等等其他问题…

外包就干了2个月,技术退步明显....

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成&#xff1a;1、向量和矩阵…

echarts绘制 联系词(关键字)

<template><div><div>【关键词条】</div><div ref"target" class"w-full h-full" stylewidth:300px;height:300px></div></div> </template><script setup> import { ref, onMounted,watch } from …

使用docker-compose部署Redis集群

一、部署三主三从的Redis集群 分别为6个节点建立挂载目录&#xff0c;每个目录下建立数据、配置、日志文件夹。 docker-compose内容如下&#xff1a; version: 3 services:redis1:image: redis:6.2.3restart: alwaysports:- "6379:6379"- "16379:16379"v…

融入Facebook的世界:探索数字化社交的魅力

融入Facebook的世界&#xff0c;是一场数字化社交的奇妙之旅。在这个广袤的虚拟社交空间中&#xff0c;人们可以尽情展现自己、分享生活&#xff0c;与全球朋友、家人和同事保持紧密联系&#xff0c;共同探索社交互动的乐趣与魅力。让我们深入了解这个世界的魅力所在&#xff1…

基于SpringBoot+Vue的电商应用系统的设计与实现

1 绪论 1.1研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的大环境让那些止步不前&…

2.2 HTML5保留的常用标签

2.2.1 基础标签 1. 段落标签<p> 段落标签<p>和</p>用于形成一个新的段落&#xff0c;段落与段落之间默认为空一行进行分割。 2. 标题标签<h1>-<h6> HTML5使用<hn>和</hn>来标记文本中的标题&#xff0c;其中n需要替换为数字&#x…

腾讯云对象存储的在Java使用步骤介绍

腾讯云对象存储的在Java使用步骤介绍 创建一个腾讯云的账户 这个自己去创建&#xff0c;然后开通对象存储服务&#xff0c;如下 有了账号就要创建一个对象存储的桶&#xff0c;也就是存储对象的一个容器 如果你想只有自己放存放的就设置 私有读写 &#xff0c;如果想用网络直…

webstorm如何调试uniapp项目

1、webstorm安装Uniapp Tool项目&#xff0c;并根据要求配置Hbuilder和微信开发者工具&#xff1b; 2、运行/调试配置 3、运行uniapp项目&#xff0c;然后运行调试即可愉快的在webstorm上加断点调试了