前言
刷题专栏到目前已经是第二十九篇了,欢迎大家来关注我的刷题专栏,一起来刷题。
今天的这道题《重复的子字符串》,是关于字符串结构的一道题。
一般遇到字符串相关的题目,都是绕不开循环遍历这条路的。
今天的这道题如何解答,就一起来看一下具体的实现吧。
算法题:重复的子字符串
根据题目的描述来看,是要在一个字符串中判断是否只存在重复的字符串。
这个题的解题思路其实就要搞清如何找出重复的字符串次数。
如果是零次,那么就不是重复的字符串,如果大于零次则就是重复的字符串。
这里我们可以使用双重循环的方式来处理,判断每一个字符串在内部循环中是否存在重复。
但是,这里我们也可以使用正则表达式来处理这道题,正则的逻辑就是判断某一个字符串在后续出现一次或多次即可得到相应的结果。
下面我们就来看一下代码编写情况。
代码展示
本次执行的代码如下所示:
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.repeatedSubstringPattern("aabb")); } public boolean repeatedSubstringPattern(String s) { int n = s.length(); for (int i = 1; i * 2 <= n; i++) { if (n % i == 0) { boolean flag = true; for (int j = i; j < n; j++) { if (s.charAt(j) != s.charAt(j - i)) { flag = false; break; } } if (flag) { return true; } } } return false; } }
代码执行结果
今天的执行结果不怎么样,应该使用Java内置方法试一下的。
总结
此题主要考察对字符串的处理是否足够熟练,不知道大家解出来了没有,评论区来一起讨论一下吧。