Repeated Substring Pattern

    xiaoxiao2021-03-26  23

    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.)

    这道是一个实现题,首先判断重复的pattern能否被字符串的长度整除;如果可以的话,那么每次用pattern跟字符串的对应段的子串相匹配;匹配成功则return true;

    代码:

    public boolean repeatedSubstringPattern(String str) { if(str == null || str.length() < 2) return false; for(int i=1;i<=str.length()/2;i++){ if(str.length() % i == 0){ String pattern = str.substring(0, i); boolean find = true; for(int j=0;j<str.length();j = j+pattern.length()){ if(!pattern.equals(str.substring(j, j+pattern.length()))){ find = false; break; } } if(find){ return true; } } } return false; }

    转载请注明原文地址: https://ju.6miu.com/read-350102.html

    最新回复(0)