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

Leecode刷题C语言之字符串及其反转中是否存在同一子字符串

执行结果:通过

执行用时和内存消耗如下:

 

 

bool isSubstringPresent(char* s) {int i,len=strlen(s),end;for(i=0;i<len-1;i++){if(s[i]==s[i+1])    return true;for(end=len-1;end>1;end--){if(s[i]==s[end]&&s[i+1]==s[end-1])  return true;}}return false;
}

解题思路:

这段代码的目的是检查一个字符串 s 中是否包含 "ABAB" 类型的子串(即两个相同的字符紧接着另外两个相同的字符)。下面是详细的解题思路:

  1. 初始化变量
    • i:用于遍历字符串 s 的每个字符。
    • len:存储字符串 s 的长度。
    • end:用于从字符串 s 的末尾向前遍历,以检查是否存在与 s[i] 和 s[i+1] 相同的连续字符对。
  2. 遍历字符串
    • 使用外层循环 (for(i=0; i<len-1; i++)) 遍历字符串 s 的每个字符,直到倒数第二个字符。这样做是因为我们需要检查当前字符 s[i] 和其后一个字符 s[i+1] 是否相同,以及是否存在与之相同的字符对在字符串的其他位置。
  3. 检查相邻字符是否相同
    • 在外层循环中,首先检查当前字符 s[i] 和其后一个字符 s[i+1] 是否相同。如果相同,意味着已经找到了 "AA" 这样的子串,只需要在字符串的其他部分找到另一个 "AA" 子串即可确认存在 "ABAB" 类型的子串(这里假设 s[i] 和 s[i+1] 代表 "AA",而后续检查会验证是否存在另一个 "AA")。在这种情况下,直接返回 true
  4. 在字符串的其余部分查找相同的字符对
    • 如果当前字符 s[i] 和其后一个字符 s[i+1] 不相同,则进入内层循环 (for(end=len-1; end>i+1; end--)) 从字符串的末尾向前遍历(注意,end 的初始值是 len-1,且每次循环 end 都递减,但循环条件是 end>i+1,确保不会与外层循环中的 i 和 i+1 位置重叠)。
    • 在内层循环中,检查是否存在 s[i] == s[end] 且 s[i+1] == s[end-1] 的情况。如果找到这样的字符对,意味着在字符串 s 中找到了 "ABAB" 类型的子串(其中 s[i] 和 s[i+1] 可以看作 "AB" 的一部分,而 s[end] 和 s[end-1] 是另一部分),此时返回 true
  5. 未找到符合条件的子串
    • 如果外层循环和内层循环都未能找到符合条件的子串,则函数最终返回 false,表示字符串 s 中不存在 "ABAB" 类型的子串。

总结
这段代码通过两层循环遍历字符串 s,检查是否存在由两个相同字符组成的连续对,并确认这样的对是否至少在字符串中出现两次(可以是重叠的,也可以是不重叠的),从而判断字符串 s 中是否包含 "ABAB" 类型的子串。


http://www.mrgr.cn/news/81560.html

相关文章:

  • 使用 Webpack 优雅的构建微前端应用❕
  • python实现根据搜索关键词爬取某宝商品信息
  • FFmpeg 的常用API
  • feign验签不通过,但是postman没问题
  • 在 Sanic 应用中使用内存缓存管理 IP 黑名单
  • 鸿蒙UI开发——使用WidthTheme实现局部深浅色
  • 电子应用设计方案73:智能家庭书柜系统设计
  • Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)
  • 代码随想录算法【Day2】
  • SpeedTree学习笔记总结
  • 概率论期末速成笔记(包过版)
  • k8s网络,跨主机容器通信机制(没看懂)
  • GitLab安装及使用
  • Llama 3 简介(一)
  • NVIDIA vGPU虚拟机显卡分片技术
  • uni-app 跨端开发精美开源UI框架推荐
  • 汇总贴:cocos creator
  • Python + 深度学习从 0 到 1(02 / 99)
  • 服务平滑发布与线上验证
  • 秒鲨后端之MyBatis【1】环境的搭建和核心配置文件详解
  • tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录
  • 增强路由器 路由器升级宽带速度
  • Text2Reward学习笔记
  • 【强化学习】Stable-Baselines3学习笔记
  • Linux系统下安装webstorm
  • 华为管理变革之道:管理制度创新