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

手机建设银行新网站建设网站行业云

手机建设银行新网站,建设网站行业云,贵州凤冈新闻今天,建网站要学哪些软件探寻字符串里长度为 3 的无重复字符子字符串 题目描述 给定一个字符串 s,需要找出其中所有长度为 3 的 “好子字符串”,也就是不含有任何重复字符的连续子字符串,并统计其数量。需要注意的是,即便相同的好子字符串多次出现&…

探寻字符串里长度为 3 的无重复字符子字符串

题目描述

给定一个字符串 s,需要找出其中所有长度为 3 的 “好子字符串”,也就是不含有任何重复字符的连续子字符串,并统计其数量。需要注意的是,即便相同的好子字符串多次出现,每次都要计入结果。

解题思路剖析

核心思路

  • 直接遍历法:对字符串进行遍历,从每个位置开始截取长度为 3 的子字符串,接着检查这三个字符是否互不相同。
  • 字符对比:由于子字符串长度固定为 3,只需比较这三个字符两两是否不同即可,无需使用额外的数据结构。

关键步骤

  1. 边界情况处理:若字符串长度小于 3,直接返回 0,因为不存在符合条件的子字符串。
  2. 遍历字符串:借助循环从每个可能的起始位置提取长度为 3 的子字符串。
  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;}
}

代码详细解读

  1. 输入长度判断

    int n = s.length();
    if (n < 3) return 0;
    
    • 先获取字符串 s 的长度 n
    • 若字符串长度不足 3,直接返回 0,因为无法构成符合要求的子字符串。
  2. 初始化计数器

    int count = 0;
    
    • 定义变量 count 来记录符合条件的子字符串数量,初始值设为 0。
  3. 遍历并提取子字符串

    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 方法分别获取当前子字符串的三个字符 abc
  4. 字符唯一性检查

    if (a != b && a != c && b != c) {count++;
    }
    
    • 当这三个字符两两都不相等时,说明该子字符串是 “好子字符串”,此时将计数器 count 加 1。
  5. 返回结果

    return count;
    
    • 循环结束后,返回统计得到的符合条件的子字符串数量。

复杂度分析

  • 时间复杂度O(n),其中 n 是字符串 s 的长度。
    • 只需对字符串进行一次遍历,每个字符的处理操作都是常数时间。
  • 空间复杂度O(1)
    • 除了几个用于存储字符和计数器的变量外,没有使用额外的空间。

总结与优化

  1. 算法优势

    • 该算法无需复杂的逻辑,直接通过遍历和简单的字符比较来解决问题,代码简洁且容易理解。
    • 时间复杂度为线性级别,在处理大规模输入时也能保持较高效率。
  2. 扩展思考

    • 如果题目要求找出长度不固定的无重复字符子字符串,可以考虑使用滑动窗口算法。
    • 若字符集的范围较大(例如包含 Unicode 字符),可以改用哈希集合或字典来记录字符的出现情况。
  3. 注意事项

    • 要确保循环的边界条件正确,避免出现数组越界的错误。
    • 进行字符比较时,要保证所有可能的两两组合都被检查到。

文章转载自:

http://1g6eKjpW.ndmbd.cn
http://zVfwWqpp.ndmbd.cn
http://msDVRZEG.ndmbd.cn
http://5VKrYdyK.ndmbd.cn
http://qecpxhqa.ndmbd.cn
http://BH1AT5RI.ndmbd.cn
http://JSbHtEBY.ndmbd.cn
http://NzYeBAgv.ndmbd.cn
http://5ABPG6A7.ndmbd.cn
http://QKxBQ96J.ndmbd.cn
http://KzEgmWMR.ndmbd.cn
http://sen22iU5.ndmbd.cn
http://HWZoNEo4.ndmbd.cn
http://Y8pyedGl.ndmbd.cn
http://xZbSimso.ndmbd.cn
http://XpBD5yeo.ndmbd.cn
http://PABL5MQv.ndmbd.cn
http://ywWMtMQ8.ndmbd.cn
http://rqGVdIuK.ndmbd.cn
http://iKR0hydD.ndmbd.cn
http://ADD2m3fp.ndmbd.cn
http://tfMTVLY3.ndmbd.cn
http://7J3wqL3o.ndmbd.cn
http://4EZoS9Ry.ndmbd.cn
http://L3gPcWfh.ndmbd.cn
http://YPfxNWl8.ndmbd.cn
http://yZKHcY4h.ndmbd.cn
http://RaKCj9Ly.ndmbd.cn
http://KG572uvA.ndmbd.cn
http://oeOFJV9z.ndmbd.cn
http://www.dtcms.com/wzjs/679912.html

相关文章:

  • 为什么有的网站打不开做域名后就得做网站吗
  • 山东菏泽建设银行网站网页界面设计要中重点掌握
  • 中国铁路建设投资公司网站熊学军集团有限公司成立条件
  • 网站建设_超速云建站西安房产网58
  • 手机网站cms 下载温州网站建设外包
  • 论坛型网站建设c语言网页编辑器
  • 东莞营销网站建设收费标准wordpress获取当前页面链接地址
  • 游戏运营备案官方网站做旅游网站需要的背景
  • 大庆市建设局网站刘东做网站的分辨率
  • 网站不支持ie8山东省建设银行网站
  • asp网站后台无法编辑网站建设捌金手指下拉二八
  • 网站建设第一品牌 网站设计哈尔滨建站人
  • 关于域名用于非网站用途的承诺书微信小程序开发技术栈
  • 网站开发程序员是什么学校毕业魔域永恒网页游戏
  • 定制网站建设公司网站建设专业性的评价内容
  • 为网站网站做宣传西安做网站首选
  • 设计公司网站套餐免费外链平台
  • 淘宝客网站建设多少钱公众号运营团队
  • 租房网站的财务分析表怎么做上海网站推广公司
  • 东莞网站制作公司报价wordpress删除小工具
  • 桌面软件开发跟网站开发那个佛山用户网站建设
  • 网站开发 合作协议网站服务器连接被重置
  • 哪个网站可以做图片链接管理公司网站设计
  • jquery网站模板下载微信同城小程序开发教程
  • m开头的手机网站怎么做教学督导网站建设报告
  • 各大网站推广软件电商网站的支付接入该怎么做呢
  • 常州企业网站建设唐山网站建设拓
  • 招商网站建设定做营销型网站建设市场
  • 如何建设传奇网站绵阳的网站建设公司哪家好
  • wordpress主题tag标签页面代码网站优化说明