zoukankan      html  css  js  c++  java
  • LeetCode_459. Repeated Substring Pattern

    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 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.)
    package leetcode.easy;
    
    public class RepeatedSubstringPattern {
    	public boolean repeatedSubstringPattern(String s) {
    		// corner case
    		if (s == null || s.length() == 0) {
    			return true;
    		}
    		int n = s.length();
    		for (int len = n / 2; len >= 1; len--) {
    			if (n % len != 0) {
    				continue; // s length must can be divided by the pattern length
    			} else {
    				String pattern = s.substring(0, len); // pattern string
    				int i = len; // start index of 2nd pattern
    				int j = i + len - 1; // end index of 2nd pattern
    				while (j < n) {
    					String substr = s.substring(i, j + 1);
    					if (!pattern.equals(substr)) {
    						break; // failed for this pattern, try next pattern
    					} else {
    						i += len;
    						j += len;
    					}
    				}
    				// if it past the last substring check, i will be n
    				if (i == n) {
    					return true;
    				}
    			}
    		}
    		return false;
    	}
    
    	@org.junit.Test
    	public void test() {
    		System.out.println(repeatedSubstringPattern("abab"));
    		System.out.println(repeatedSubstringPattern("aba"));
    		System.out.println(repeatedSubstringPattern("abcabcabcabc"));
    	}
    }
    
  • 相关阅读:
    html语法规范
    html页面基本结构
    HTML头部结构详解
    文件路径中 / 和 ./ 和 ../的区别
    实体符号
    利用JS修改style属性和添加元素类名(important)
    Less
    Eureka自我保护计算
    Eureka元数据
    EurekaServer源码分析
  • 原文地址:https://www.cnblogs.com/denggelin/p/12004163.html
Copyright © 2011-2022 走看看