LeetCode 459. Repeated Substring Pattern

LeetCode 459. Repeated Substring Pattern (重复的子字符串)

题目

链接

https://leetcode.cn/problems/repeated-substring-pattern/

问题描述

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

示例

输入: s = "abab"
输出: true
解释: 可由子串 "ab" 重复两次构成。

提示

输入: s = "abab"
输出: true
解释: 可由子串 "ab" 重复两次构成。

思路

假设字符串为abcabc,子串应该为abc,那么两个串合并之后去除首尾字符,为bcabcabcab,去除了本来可能存在的子串,但是还是包含abc,就代表应该存在所需子串。

复杂度分析

时间复杂度 O(n)
空间复杂度 O(n)

代码

Java

    public boolean repeatedSubstringPattern(String s) {
        String str = s + s;
        return str.substring(1, str.length() - 1).contains(s);
    }
posted @ 2022-05-26 11:32  cheng102e  阅读(56)  评论(0编辑  收藏  举报