zoukankan      html  css  js  c++  java
  • 1668. Maximum Repeating Substring

    package LeetCode_1668
    
    /**
     * 1668. Maximum Repeating Substring
     * https://leetcode.com/problems/maximum-repeating-substring/
     * For a string sequence, a string word is k-repeating if word concatenated k times is a substring of sequence.
     * The word's maximum k-repeating value is the highest value k where word is k-repeating in sequence.
     * If word is not a substring of sequence, word's maximum k-repeating value is 0.
    Given strings sequence and word, return the maximum k-repeating value of word in sequence.
    
    Example 1:
    Input: sequence = "ababc", word = "ab"
    Output: 2
    Explanation: "abab" is a substring in "ababc".
     * */
    class Solution {
        /*
        * Time:(n), Space:O(1)
        * */
        fun maxRepeating(sequence: String, word: String): Int {
            val l = sequence.length
            var max = 0
            var count = 0
            var start = 0
            while (start + word.length <= l) {
                val end = start + word.length
                if (sequence.substring(start, end) == word) {
                    count++
                    /*
                    * jump into next right position, for example: "ababc" and "ab",
                    * start is 0,then jump into 0+2
                    * */
                    start += word.length
                    max = Math.max(max, count)
                } else {
                    //if not match, reset the count and moving start
                    count = 0
                    start++
                }
            }
            return max
        }
    }
  • 相关阅读:
    Android 序列化 反序列功能
    Android两个应用之间共享数据之SharedPrefence
    利用Asp.Net的Identity控制登录权限
    基元类型
    CLR概述
    python中的函数-基础
    较为复杂的sql
    oracle中的替换字段字符串的方法
    使用Sql查看表对应的外键关系。
    js中的除法
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14081363.html
Copyright © 2011-2022 走看看