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

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

前言

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

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

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

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

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

总结

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

目录
相关文章
|
6月前
|
存储 算法 索引
刷题专栏(二十六):字符串中的第一个唯一字符
刷题专栏(二十六):字符串中的第一个唯一字符
100 1
刷题专栏(二十六):字符串中的第一个唯一字符
|
6月前
|
算法
刷题专栏(三十):数组拆分 I
刷题专栏(三十):数组拆分 I
125 2
|
6月前
|
算法 Java C++
字符串删减(蓝桥杯每日一题)
字符串删减(蓝桥杯每日一题)
65 0
|
6月前
|
算法
刷题专栏(二十四):两个数组的交集
刷题专栏(二十四):两个数组的交集
105 0
|
6月前
|
算法
刷题专栏(二十):单词规律
刷题专栏(二十):单词规律
60 0
|
6月前
|
算法 Java
刷题专栏(二):最后一个单词的长度
刷题专栏(二):最后一个单词的长度
57 0
|
6月前
|
算法
六六力扣刷题字符串之重复的子字符串
六六力扣刷题字符串之重复的子字符串
64 0
|
存储 人工智能 算法
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
|
机器学习/深度学习 算法
代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离
|
算法 C++
重复的子字符串代码随想录刷题 (力扣刷题)
重复的子字符串代码随想录刷题 (力扣刷题)