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();
    
        }
    
    }
  • 相关阅读:
    获取窗口相对位置小工具
    关于抽奖概率的问题
    乔布斯的成功秘方:坚持思考两个问题
    清理svn生成的相关文件的小工具
    photoshop cs6 简体中文正式版下载
    .NET下office操作利器NPOI
    sql 取各组中的最大值
    c# winform 获取当前程序运行根目录
    C# Winform DataGridView使用总结 转
    c#安装数据库并自动修改Web.config类
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6075958.html
Copyright © 2011-2022 走看看