首页 > 代码库 > repeated-substring-pattern
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\n", 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\n", ret); System.out.println(); } }
repeated-substring-pattern
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。