刷题专栏(二十九):重复的子字符串

简介: 刷题专栏(二十九):重复的子字符串

前言

刷题专栏到目前已经是第二十九篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天的这道题《重复的子字符串》,是关于字符串结构的一道题。

一般遇到字符串相关的题目,都是绕不开循环遍历这条路的。

今天的这道题如何解答,就一起来看一下具体的实现吧。

image.png

算法题:重复的子字符串

根据题目的描述来看,是要在一个字符串中判断是否只存在重复的字符串。

这个题的解题思路其实就要搞清如何找出重复的字符串次数。

如果是零次,那么就不是重复的字符串,如果大于零次则就是重复的字符串。

这里我们可以使用双重循环的方式来处理,判断每一个字符串在内部循环中是否存在重复。

但是,这里我们也可以使用正则表达式来处理这道题,正则的逻辑就是判断某一个字符串在后续出现一次或多次即可得到相应的结果。

下面我们就来看一下代码编写情况。

代码展示

本次执行的代码如下所示:

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内置方法试一下的。image.png

总结

此题主要考察对字符串的处理是否足够熟练,不知道大家解出来了没有,评论区来一起讨论一下吧。

目录
相关文章
|
8月前
|
存储 算法 索引
刷题专栏(二十六):字符串中的第一个唯一字符
刷题专栏(二十六):字符串中的第一个唯一字符
107 1
刷题专栏(二十六):字符串中的第一个唯一字符
|
8月前
|
算法
刷题专栏(三十):数组拆分 I
刷题专栏(三十):数组拆分 I
133 2
|
8月前
|
算法
刷题专栏(二十四):两个数组的交集
刷题专栏(二十四):两个数组的交集
114 0
|
8月前
|
算法
刷题专栏(十七):丢失的数字
刷题专栏(十七):丢失的数字
67 0
|
8月前
|
算法
刷题专栏(二十):单词规律
刷题专栏(二十):单词规律
68 0
LeetCode刷题之分隔链表(图解➕代码)
LeetCode刷题之分隔链表(图解➕代码)
|
机器学习/深度学习 算法
代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
|
算法 C++
重复的子字符串代码随想录刷题 (力扣刷题)
重复的子字符串代码随想录刷题 (力扣刷题)
|
存储
【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!
【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!
75 0
|
存储 算法 索引
代码随想录刷题|LeetCode KMP算法理论 28. 实现 strStr() 459.重复的子字符串
代码随想录刷题|LeetCode KMP算法理论 28. 实现 strStr() 459.重复的子字符串
代码随想录刷题|LeetCode KMP算法理论 28. 实现 strStr() 459.重复的子字符串