leetcode -- 459. Repeated Substring Pattern【java细节优化 + 模式规律 + 数字规律排除 】
2017-07-21 15:02
761 查看
题目
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 lengthwill 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.)
题意
给定一个非空字符串,检查是否有某一个子串重复构成该字符串。一个子串
子串的整数倍 构成 目标字符串。
分析及解答
解法1:【细节优化】(提升代码运行速度)
【函数与变量】string.length() 若反复用到,通过len变量来进行存储,访问变量 比 访问函数要节省时间。
【数组】array[ i ] 比 String.charAt(i) 要节省时间。
【调整语句顺序】不要过早的定义变量,在变量有效范围内定义变量(堆,变量初始化需要花费时间)
public class RepeatedSubstringPattern { public boolean repeatedSubstringPattern(String s) { int len = s.length(); char[] array = s.toCharArray(); boolean isAllRepeated = false; for (int interval = 1; interval <= len / 2; interval++) { if (len % interval == 0) { boolean isOneRepeated = true; int count = len / interval; for (int i = 0; i < interval; i++) { for (int j = 0; j < count; j++) { isOneRepeated = isOneRepeated && (array[i] == array[i + j * interval]); } } isAllRepeated = isAllRepeated || isOneRepeated; } } return isAllRepeated; } }
相关文章推荐
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)—— 匹配中文,英文字母和数字及_长度详解——收集资源blog
- Thread-Per-message Pattern--JAVA多线程编程模式(7)
- Java设计模式 Design Pattern:命令模式 Command Pattern
- java web开发总结(二):linux + apache2.2(prefork模式) + jk1.2.26 + tomcat6负载均衡配置优化
- Java设计模式—观察者模式(Observer pattern)
- java web开发总结(二):linux + apache2.2(prefork模式) + jk1.2.26 + tomcat6负载均衡配置优化
- java设计模式学习4--Builder Pattern[原创]
- Java之装饰模式(Decorator Pattern)
- Java之命令模式(Command Pattern)
- Java之外观模式(Facade Pattern)
- Java之装饰模式(Decorator Pattern)
- Java之命令模式(Command Pattern)
- 浅谈 java 设计模式--构建模式(Builder pattern)
- java设计模式---Abstract Facotry Pattern---抽象工厂模式
- Java与模式 迭代子模式 Iterator Pattern
- Java与模式 命令模式 Command Pattern
- Java之外观模式(Facade Pattern)
- Java与模式 观察者模式Observer Pattern
- Java之建造者模式(Builder Pattern)
- 设计模式之装饰模式 Decoratory Pattern java