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

Java String类练习

1,字符串的第一个唯一字符

 思路:

是否可以直接遍历count数组,第一个为1的就是出现一次的字母

不可以

如果直接遍历 count 数组找第一个值为 1 的索引,会得到字母表中第一个出现一次的字母(如字符串是 leetcode,遍历 count 数组会找到 b,但实际答案是 l),这与题目要求不符。

统计次数count[c - 'a']++ 利用字符与 'a' 的 ASCII 差,把 a~z 映射到数组索引 0~25,高效统计次数。

按原顺序遍历:必须按字符串的原始顺序遍历,而非遍历 count 数组。因为题目要求 “第一个不重复的字符”(按字符串出现顺序找,而非字母表顺序)。


即,统计次数后,按原字符串顺序遍历,找第一个 count 为 1 的字符。

代码实例:

首先定义了count数组来存放26个字母

第一个for循环来计数,计数每一个字符出现的次数

第二个for循环来返回第一个只出现一次的字符

2,字符串最后一个单词的长度

思路:

有两种方法

可以通过字符串分割,使用split()

也可以找到最后一个空格的下标,然后截取空格后的字符串,然后求长度,使用lastindexOf和 subString()

代码示例

方法1:

方法2:

若这些方法不明白就去看佩奇大王的Java String类哦

3,验证回文串


思路:

由题目可以得知,字母,数字属于字母数字字符,而标点符号属于非字母数字字符

我们先写一个方法来判断字符是否为字母数字字符,是的话返回true,不是返回false

然后要将大写字母转化为小写字母

我们可以把一段(可能包括标点符号的)字符串分别设置  锚点  在  开头和末尾(可以理解为指针,但要注意java中没有指针)

当检测到不是字母数字字符,左锚点向右移动一位,右锚点向左移动一位

再判断左锚点和右锚点上的字符是否一致,一致就左锚点向右移动一位,右锚点向左移动一位,不一致直接返回false

代码示例

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

相关文章:

  • 客户满意度调查:助力商场提升运营效能​(客户满意度调查)
  • 8.Linux : 日志的管理与时钟同步的配置
  • 代码随想录算法训练营第五十六天|动态规划part6
  • 手动 对列表字段进行排序
  • 【高等数学】第七章 微分方程——第四节 一阶线性微分方程
  • LNN+XGBoost:优化多层供应链订购:缓解牛鞭效应
  • C++STL系列之bitset
  • Git——分布式版本控制系统
  • #C语言——学习攻略:深挖指针路线(四)--字符指针变量,数组指针变量,二维数组传参的本质,函数指针变量,函数指针数组
  • ConvertX:自托管的在线文件转换器,支持1000+种格式!
  • Linux系统编程Day1-- 免费云服务器获取以及登录操作
  • CH347使用笔记:CH347作为FPGA下载器的几种方式
  • Maven 配置阿里云镜像加速
  • huggingface是什么?2025-07-30
  • Mac 上配置jdk 环境变量
  • 2. Agent与 React流程
  • 【LY88】双系统指南及避坑
  • Python 的 match-case
  • 从映射到共生:元宇宙、物联网与AI的智能融合生态图谱
  • (LeetCode 面试经典 150 题) 141. 环形链表(快慢指针)
  • HPCtoolkit的下载使用
  • Oracle11g数据库迁移达梦8数据库方案
  • Python序列化和反序列化
  • 如何用Docker部署ROS2
  • (C++)C++类和类的方法(基础教程)(与Python类的区别)
  • c++之基础B之sort排序(第三个参数没有)(第二课)
  • Fiddler中文教程 从入门到进阶的网络抓包与接口调试实战指南
  • Python Pandas.merge_asof函数解析与实战教程
  • VUE前端
  • [Agent开发平台] API网关 | 业务领域 | DTO格式 | 分页令牌