LeetCode 459. Repeated Substring Pattern

Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 10000.

Example 1:

Input: "abab"

Output: True

Explanation: It‘s the substring "ab" twice.

Example 2:

Input: "aba"

Output: False

Example 3:

Input: "abcabcabcabc"

Output: True

Explanation: It‘s the substring "abc" four times. (And the substring "abcabc" twice.)

【题目分析】

判断一个字符串是否是由某个子串重复多次构成。

【思路】

1. 子串至少重复两次

2. 从字符串的头部取长度范围为1~str.length()/2的子串,用正则表达式来进行判断。

【java代码】

 1 public class Solution {
 2     public boolean repeatedSubstringPattern(String str) {
 3         if(str == null || str.length() < 2) return false;
 4
 5         boolean result = false;
 6         for(int i = 1; i <= str.length()/2; i++) {
 7             if(str.length()%i != 0) continue;
 8             String regex = "("+str.substring(0,i)+")" + "+";
 9             result = result | str.matches(regex);
10         }
11         return result;
12     }
13 }
时间: 2024-10-26 20:12:21

LeetCode 459. Repeated Substring Pattern的相关文章

43. leetcode 459. Repeated Substring Pattern

459. Repeated Substring Pattern Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only an

KMP - LeetCode #459 Repeated Substring Pattern

复习一下KMP算法 KMP的主要思想是利用字符串自身的前缀后缀的对称性,来构建next数组,从而实现用接近O(N)的时间复杂度完成字符串的匹配 对于一个字符串str,next[j] = k 表示满足str[0...k-1] = str[j-k...j-1]的最大的k,即对于子串str[0...j-1],前k个字母等于后k个字母 现在求解str的next数组: 初始化:next[0] = -1 那么在知道了next[j]的情况下,如何递推地求出next[j+1]呢?分两种情况(令k=next[j]

459. Repeated Substring Pattern【easy】

459. Repeated Substring Pattern[easy] Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters o

【LeetCode】459. Repeated Substring Pattern

Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 100

459. Repeated Substring Pattern

https://leetcode.com/problems/repeated-substring-pattern/#/description Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consis

letecode [459] - Repeated Substring Pattern

Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 100

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

459. 重复的子字符串 459. Repeated Substring Pattern 题目描述 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过 10000. LeetCode459. Repeated Substring Pattern 示例 1: 输入: "abab" 输出: True 解释: 可由子字符串 "ab" 重复两次构成. 示例 2: 输入: "aba" 输出: Fa

Leetcode: Repeated Substring Pattern

Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 100

[LeetCode] Repeated Substring Pattern 重复子字符串模式

Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together. You may assume the given string consists of lowercase English letters only and its length will not exceed 100