• 刷刷刷,代码敲起来嘻嘻---力扣字符串->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;
        }
    
    }
    
    艾欧尼亚,昂扬不灭,为了更美好的明天而战(#^.^#)
  • 相关阅读:
    Using Boost C++ libraries with gcc g++ under Windows(cygwin+netbeans)
    RFC中文目录
    GNU Make 学习笔记(一)
    make
    ODBC连接ORACLE数据库的设置
    windows下boost开发环境简易教程(cygwin+eclipse)
    GNU Make(二)
    C++虚函数表解析(转)
    如何判断adoquery中字段值是不是空值?
    Delphi ListView基本用法大全
  • 原文地址:https://www.cnblogs.com/lovelywcc/p/14582292.html
Copyright © 2020-2023  润新知