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"));
    	}
    }
    
  • 相关阅读:
    fopen flock fclose 文件用法
    thinkphp并发 阻塞模式与非阻塞模式
    thinkphp3.2 控制器导入模型
    thinkphp3.2 session时间周期无效
    UWP滑动后退
    旺信UWP公测邀请
    旺信UWP倒计时
    UWP应用开发系列视频教程简介
    新浪微博UWP UI意见征求
    淘宝UWP--自定义图片缓存
  • 原文地址:https://www.cnblogs.com/denggelin/p/12004163.html
Copyright © 2011-2022 走看看