刷刷刷,代码敲起来嘻嘻---力扣字符串->459. 重复的子字符串

背景,通过2020年一年的日夜学习,自己技术方面大部分都有涉略,虽然暂时还不精通,特别是对以前不懂的多线程和数据库优化以及jvm和分布式部分大概进行了学习并敲了项目,以为金三银四的机会到了,自己要进大厂,唉,现实总是很骨感,投了简历,很多都要求算法,我前面是根本没刷过力扣(非科班,一起努力),感觉面试时共享屏幕被看着写,跟我被套了狗头的w或者虚弱一样,难受,本来就很难写了,被人盯的痒痒,面到算法基本都挂了,很受打击,自暴自弃了两天,不想学习了,也不想努力了,还去打了一晚上lol,后面想想,感觉确实是自己问题太大,平时业务增删改查,也没太难的业务,自己思维都慢慢钝化了,准备今年刷完easy,再刷一些中等难度的吧,面试应该会好些,一起加油啊。

有什么问题都可以一起讨论哈,都是新手嘻嘻

package letecode.string;

/**
 * 459. 重复的子字符串
 * 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
 */
public class RepeatableStr {
    public static void main(String[] args) {
        String str = "abaababaab";
        Boolean result = isRepeatableStr(str);
        System.out.println("result = " + result);
    }

    /**
     * 思路就是从第一个字符串开始,找到和第一个字符串一样的,然后截取这段一样的,看是否能被整除,可以被整除,则将整除的次数算出来,将基础
     * 字符增加整除的次数,看是否和原始字符串相等,如果不能整除就继续往后找和第一字符串一样的,再截取,继续这样判断,可能还有别的思路,我目前
     * 还比较菜,只看了小灰算法这本书,看到了树,继续加油。
     * @param str
     * @return
     */
    private static Boolean isRepeatableStr(String str) {
        char[] chars = str.toCharArray();
        char first = chars[0];
        Boolean flag = false;
        for (int i = 1; i < chars.length; i++) {
            if (first == chars[i]){
                String baseStr = str.substring(0,i);
                if (str.length()%baseStr.length() == 0){
                    int forTimes = str.length()/baseStr.length();
                    String repeatStr ="";
                    for (int j = 0; j < forTimes; j++) {
                        repeatStr = repeatStr + baseStr;
                    }
                    if (repeatStr.equals(str)){
                        flag = true;
                        break;
                    }
                }
            }
        }
        return flag;
    }

}
posted @   皮卡丘和羊宝贝😄  阅读(56)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示