论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
职场与人生
›
IT职场那些事
›
LeetCode 1876长度为三且各字符不同的子字符串 ...
LeetCode 1876长度为三且各字符不同的子字符串
温锦文欧普厨电及净水器总代理
论坛元老
|
2025-4-12 08:16:08
|
显示全部楼层
|
阅读模式
楼主
主题
1773
|
帖子
1773
|
积分
5319
探寻字符串里长度为 3 的无重复字符子字符串
标题形貌
给定一个字符串 s,需要找出其中所有长度为 3 的 “好子字符串”,也就是不含有任何重复字符的连续子字符串,并统计其数目。需要注意的是,即便相同的好子字符串多次出现,每次都要计入结果。
解题思路分析
焦点思路
直接遍历法
:对字符串进行遍历,从每个位置开始截取长度为 3 的子字符串,接着检查这三个字符是否互不相同。
字符对比
:由于子字符串长度固定为 3,只需比较这三个字符两两是否不同即可,无需使用额外的数据结构。
关键步骤
边界情况处理
:若字符串长度小于 3,直接返回 0,因为不存在符合条件的子字符串。
遍历字符串
:借助循环从每个大概的起始位置提取长度为 3 的子字符串。
字符唯一性验证
:检查三个字符是否满意 a != b && a != c && b != c 的条件。
代码实现
class Solution {
public int countGoodSubstrings(String s) {
int n = s.length();
if (n < 3) return 0;
int count = 0;
for (int i = 0; i <= n - 3; i++) {
char a = s.charAt(i);
char b = s.charAt(i + 1);
char c = s.charAt(i + 2);
if (a != b && a != c && b != c) {
count++;
}
}
return count;
}
}
复制代码
代码详细解读
输入长度判定
:
int n = s.length();
if (n < 3) return 0;
复制代码
先获取字符串 s 的长度 n。
若字符串长度不敷 3,直接返回 0,因为无法构成符合要求的子字符串。
初始化计数器
:
int count = 0;
复制代码
界说变量 count 来记载符合条件的子字符串数目,初始值设为 0。
遍历并提取子字符串
:
for (int i = 0; i <= n - 3; i++) {
char a = s.charAt(i);
char b = s.charAt(i + 1);
char c = s.charAt(i + 2);
复制代码
循环从索引 0 开始,到 n - 3 结束,这样能包管每次都能提取到长度为 3 的子字符串。
通过 charAt 方法分别获取当前子字符串的三个字符 a、b、c。
字符唯一性检查
:
if (a != b && a != c && b != c) {
count++;
}
复制代码
当这三个字符两两都不相等时,说明该子字符串是 “好子字符串”,此时将计数器 count 加 1。
返回结果
:
return count;
复制代码
循环结束后,返回统计得到的符合条件的子字符串数目。
复杂度分析
时间复杂度
:
,其中 n 是字符串 s 的长度。
只需对字符串进行一次遍历,每个字符的处理操作都是常数时间。
空间复杂度
:
。
除了几个用于存储字符和计数器的变量外,没有使用额外的空间。
总结与优化
算法优势
:
该算法无需复杂的逻辑,直接通过遍历和简单的字符比较来解决问题,代码简便且容易理解。
时间复杂度为线性级别,在处理大规模输入时也能保持较高服从。
扩展思索
:
如果标题要求找出长度不固定的无重复字符子字符串,可以思量使用滑动窗口算法。
若字符集的范围较大(例如包含 Unicode 字符),可以改用哈希集合或字典来记载字符的出现情况。
注意事项
:
要确保循环的边界条件正确,制止出现数组越界的错误。
进行字符比较时,要包管所有大概的两两组合都被检查到。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
温锦文欧普厨电及净水器总代理
论坛元老
这个人很懒什么都没写!
楼主热帖
SQL的语法
可扩展性对物联网管理系统有哪些影响? ...
如何入门渗透测试
简析XDP的重定向机制
一文详解|影响成长的关键思考 ...
高校学籍管理系统(SQL Server数据库课 ...
Hawkeye部署
Java方法参数传递的底层分析 ...
OLED显示曲线
Linux查看版本(内核版本、系统版本) ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Postrge-SQL技术社区
Mysql
linux
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表