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();
    
        }
    
    }
  • 相关阅读:
    区块链python演示
    网页H5图片预览滑动模仿新浪微博插件
    AngularJS
    实现A Painless Q-learning Tutorial (深度学习笔记二)
    python线性拟合数据(深度学习笔记一)
    雪花特效登录页面
    ASP.NET Core中使用NLog记录日志
    EFCore中代码优先锲约和数据类型与数据库的对应关系
    所有数据库连接字符串示例
    看到12_234_678差点怀疑人生的事儿
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6075958.html
Copyright © 2011-2022 走看看