zoukankan      html  css  js  c++  java
  • repeated-substring-pattern

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

    下面这个方法,开始我觉得挺好。可惜还是超时了。后来我就加了一个剪枝策略,只有长度能够整除总长度的子串,才需要进行比较。

    package com.company;
    
    
    import java.util.*;
    
    class Solution {
        public boolean repeatedSubstringPattern(String str) {
    
            for (int i=1; i<=str.length()/2; i++) {
                if (str.length() % i != 0) {
                    continue;
                }
                StringBuilder sb = new StringBuilder();
                sb.append(str.substring(i));
                sb.append(str.substring(0, i));
                if (str.equals(sb.toString())) {
                    return true;
                }
            }
            return false;
        }
    }
    
    public class Main {
    
        public static void main(String[] args) throws InterruptedException {
    
            System.out.println("Hello!");
            Solution solution = new Solution();
    
            // Your Codec object will be instantiated and called as such:
            String str = "abcabcabcc";
            boolean ret = solution.repeatedSubstringPattern(str);
            System.out.printf("ret:%b
    ", ret);
    
            System.out.println();
    
        }
    
    }

    下面是开始超时的方法,少了一个剪枝条件。

    package com.company;
    
    
    import java.util.*;
    
    class Solution {
        public boolean repeatedSubstringPattern(String str) {
    
            for (int i=1; i<=str.length()/2; i++) {
                StringBuilder sb = new StringBuilder();
                sb.append(str.substring(i));
                sb.append(str.substring(0, i));
                if (str.equals(sb.toString())) {
                    return true;
                }
            }
            return false;
        }
    }
    
    public class Main {
    
        public static void main(String[] args) throws InterruptedException {
    
            System.out.println("Hello!");
            Solution solution = new Solution();
    
            // Your Codec object will be instantiated and called as such:
            String str = "abcabcabcc";
            boolean ret = solution.repeatedSubstringPattern(str);
            System.out.printf("ret:%b
    ", ret);
    
            System.out.println();
    
        }
    
    }
  • 相关阅读:
    mysql优化技巧
    ffmpeg3.3.2命令行参数笔记
    redis性能指标
    linux下ifconfig只剩下lo的解决方法
    symfony3 yml配置文件详解
    pt工具校验主从数据一致性之dsns方式
    K8S(01)二进制部署实践-1.15.5
    K8s之配置文件kube config生成
    [转]CA认证原理及CFSSL证书生成工具的使用
    K8s集成实战-使用spinnaker进行自动化部署
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6075958.html
Copyright © 2011-2022 走看看