[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]

【问题描述】[中等]

在这里插入图片描述

【解答思路】

1. 枚举

找出能整除的子串长度,再用substring遍历匹配即可
时间复杂度:O(N^2) 空间复杂度:O(1)

class Solution {public boolean repeatedSubstringPattern(String s) {int len = s.length();for(int i = 1 ;i<=len/2;i++){String sub = s.substring(0,i);int lenSub = sub.length();int count =0 ;//统计字段数 正确的话应该有 d-1int d = 0; //一共有多少段if(len%lenSub ==0){d = len/lenSub -1;for(int  j=i;j+lenSub<=len;j+=lenSub){String sub2 = s.substring(j,j+lenSub);if(sub.equals(sub2)){count++;}}if(count == d){return true;}}}return false;}
}

优化 子串 flag

class Solution {public boolean repeatedSubstringPattern(String s) {for(int i = 1; i < s.length(); ++i){if(s.length()%i == 0){String t = s.substring(0, i);boolean flag = true;for(int j = i; j + i <= s.length(); j += i){if(!t.equals(s.substring(j, j + i))){flag = false;break;}}if(flag) return true;}}return false;}
}

优化 逐个比较
在这里插入图片描述

class Solution {public boolean repeatedSubstringPattern(String s) {int n = s.length();for (int i = 1; i * 2 <= n; ++i) {if (n % i == 0) {boolean match = true;for (int j = i; j < n; ++j) {if (s.charAt(j) != s.charAt(j - i)) {match = false;break;}}if (match) {return true;}}}return false;}
}
2. 字符串匹配

在这里插入图片描述

class Solution {public boolean repeatedSubstringPattern(String s) {return (s + s).indexOf(s, 1) != s.length();}
}

【总结】

1. 扩展思路 KMP算法
2.思路二正确性证明

在这里插入图片描述
在这里插入图片描述

3.优化细节

3.1 子串长度至多等于原字符串除以2
3.2 flag标志+ break提前终止

转载链接:https://leetcode-cn.com/problems/repeated-substring-pattern/solution/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/
参考链接:https://leetcode-cn.com/problems/repeated-substring-pattern/solution/zhong-fu-de-zi-zi-fu-chuan-by-leetcode-solution/

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

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

相关文章

第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲&#xff0c;分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考&#xff0c;并深度解读百度飞桨深度学习平台的优势&#xff0c;以及与百度智能云结合助力产业智能化的成果。 作者&#xff1a;佚…

【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

版权声明&#xff1a;本文为博主原创文章&#xff0c;允许转载&#xff0c;但希望标注转载来源。 https://blog.csdn.net/qq_38410730/article/details/80312357IIC的基本介绍 IIC的简介 IIC&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;总线是一种由PHILIPS公…

【数据结构与算法】广度优先遍历(BFS) 深度优先遍历(DFS)

一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是&#xff0c;给定一张图&#xff0c;一对初始和终止节点&#xff0c;找到两节点之间的节点路径。&#xff08;代码均是找到两个节点之间的路径&#xff09; 广度优先搜索是一层一层搜索&#xf…

stack专题

20 Valid Parentheses 问题&#xff1a;没有意识到字符串中只包含字符&#xff1a;’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’ 代码&#xff1a;git代码 682 Baseball Game 问题&#xff1a;错误在操作&#xff1a;top1 先弹出&#xff0c;top2 再弹出&#xff0c;还原到…

第三十期:简单好用的9个电脑必备工具!让你轻松10倍

下面 9 款工具都是精心挑选的电脑必备神器&#xff0c;涵盖你需要的各个方面&#xff0c;无论是安全防护、文件查找、解压加密还是娱乐都在其中&#xff1b;最最最重要的是&#xff0c;它们不但各个功能强大&#xff0c;而且非常轻便&#xff0c;没有弹窗广告、没有捆绑安装、也…

【数据结构与算法】字符串匹配 BF算法 RK算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 一、BF 算法 1&#xff0c;BF算法是Brute Force的缩写&#xff0c;中文译作暴力匹配算法&#xff0c;也叫朴素匹配算法。 2&#xff0c;两个概念&#xff1a;主串和模式串 如在字符串…

第三十一期:大数据分析师学习入门,10个数据可视化技巧

在这篇文章&#xff0c;我想和大家分享 10 个基本的中级和高级的绘图工具。我发现在现实生活中&#xff0c;当涉及到绘图解释你的数据时&#xff0c;这些工具非常有用。 作者&#xff1a;加米谷大数据来源&#xff1a;今日头条 我必须对你说实话&#xff1a;当我学习数据科学时…

[Leetcode][第491题][JAVA][递增子序列][回溯][RK算法]

【问题描述】[中等] 【解答思路】 1. 二进制枚举 哈希 复杂度 class Solution {List<Integer> temp new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();Set<Integer> set new HashSet<In…

第五十七期:小型企业将如何从5G中受益

在足够多的新设备进入主流市场之前&#xff0c;5G已经在许多领域引起了越来越多的关注。从IT、零售、交通和制造业到医疗、娱乐、教育和农业&#xff0c;几乎每个行业都将在某种程度上受到5G的影响。 作者&#xff1a;李雪薇来源&#xff1a;IT168网站 在足够多的新设备进入主…

第三十二期:MySQL常见的图形化工具

MySQL作为一款非常流行的、开源的关系型数据库&#xff0c;应用非常广泛。因为MySQL开源的缘故&#xff0c;图形化管理维护工众多&#xff0c;除了系统自带的命令行管理工具之外&#xff0c;还有许多其他的图形化管理工具&#xff0c;这里介绍几个经常使用的MySQL图形化管理工具…

centos7 源码安装goaccess

1. 使用yum安装在不同服务器上可能失败, 推荐使用源码安装goaccess # 安装依赖 yum install -y ncurses-devel GeoIP-devel.x86_64 tokyocabinet-devel openssl-devel# 下载源码包并安装 cd /usr/local/software wget http://tar.goaccess.io/goaccess-1.3.tar.gz tar -xvf goa…

【数据结构与算法】字符串匹配 BM算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 BM算法 BM算法的核心思想是通过将模式串沿着主串大踏步的向后滑动&#xff0c;从而大大减少比较次数&#xff0c;降低时间复杂度。而算法的关键在于如何兼顾步子迈得足够大与无遗漏&…

第五十八期:AI艺术日渐繁荣,未来何去何从?

本文的配图都是AI艺术领域领导者、德国艺术家马里奥克林格曼(Mario Klingemann)利用人工智能创作的作品。 利用人工智能创作而成的画作近年来越来越受瞩目&#xff0c;有的作品甚至能在知名拍卖行拍得高价。但这类作品仍有不少问题需要解答&#xff0c;比如它的作者是开发出算…

【数据结构与算法】字符串匹配 KMP 算法

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 KMP 算法 KMP 算法是根据三位作者&#xff08;D.E.Knuth&#xff0c;J.H.Morris 和 V.R.Pratt&#xff09;的名字来命名的&#xff0c;算法的全称是 Knuth Morris Pratt 算法&#x…

第五十九期:商用数据库之死:Oracle 面临困境

作者&#xff1a;John Freeman、Fred McClimans 和 Zach Mitchell 我们预计到 2021 年&#xff0c;年产值 296 亿美元的商业数据库市场会收缩 20% 至 30%&#xff0c;认为 Oracle 无法让收入来源足够快地实现转型&#xff08;从传统的商业数据库转向基于云的订购产品&#xff0…

第六十期:华为:希望把VR/AR打造成下个智能手机产业

网易科技讯 10 月 19 日消息&#xff0c;2019 世界 VR 产业大会在江西省南昌市举行。华为轮值董事长郭平发表了《打造 VR/AR 信息高速公路&#xff0c;支撑产业繁荣》的主题演讲。郭平认为&#xff0c;VR/AR 将成为 5G 时代的首批应用&#xff0c;与 5G 产业发展节奏高度匹配并…

【数据结构与算法】字符串匹配 AC自动机

单模式串匹配 BF 算法和 RK 算法 BM 算法和 KMP 算法多模式串匹配算法 Trie 树和 AC 自动机 AC 自动机 AC 自动机实际上就是在 Trie 树之上&#xff0c;加了类似 KMP 的 next 数组&#xff0c;只不过此处的 next 数组是构建在树上罢了。 AC 自动机的构建 将多个模式串构建成…

第六十一期:中国农民花3000块,发明史上最牛输入法!曾火遍中国20年

投递人 itwriter “王旁青头戋(兼)五一&#xff0c;土十二干士寸雨” 如果你还能熟练的背出这段口诀&#xff0c;恭喜你&#xff0c;又暴露年龄了。 倒回到十几年前&#xff0c;在刀哥被老师带到穿鞋套才能进神秘的机房&#xff0c;练习打字的时候&#xff0c;会五笔的人简直是…

第六十二期:腾讯云发布“小程序·云开发十大优秀实践”:猫眼、唯品会等入选

作者&#xff1a;周小白 【TechWeb】10 月 19 日消息&#xff0c;今日&#xff0c;腾讯云首次对外公布了“小程序云开发十大优秀实践”&#xff0c;包括白鹭引擎、千墨科技、腾讯新闻、即速应用、微盟、唯品会、猫眼、香格里拉、微信读书、微信支付等&#xff0c;涉及多个行业。…

[Leetcode][第17题][JAVA][电话号码的字母组合][回溯]

【问题描述】[中等] 【解答思路】 用哈希表/数组存储每个数字对应的所有可能的字母&#xff0c;然后进行回溯操作。 回溯过程中维护一个字符串&#xff0c;表示已有的字母排列&#xff08;如果未遍历完电话号码的所有数字&#xff0c;则已有的字母排列是不完整的&#xff09;…