您的位置:首页 > 房产 > 家装 > 网页设计psd源文件_知乎广告代理商_西安搜索引擎优化_网站建设首页

网页设计psd源文件_知乎广告代理商_西安搜索引擎优化_网站建设首页

2024/12/22 23:28:13 来源:https://blog.csdn.net/sinat_41679123/article/details/144371374  浏览:    关键词:网页设计psd源文件_知乎广告代理商_西安搜索引擎优化_网站建设首页
网页设计psd源文件_知乎广告代理商_西安搜索引擎优化_网站建设首页

Description

You are given a string s that consists of lowercase English letters.

A string is called special if it is made up of only a single character. For example, the string “abc” is not special, whereas the strings “ddd”, “zz”, and “f” are special.

Return the length of the longest special substring of s which occurs at least thrice, or -1 if no special substring occurs at least thrice.

A substring is a contiguous non-empty sequence of characters within a string.

Example 1:

Input: s = "aaaa"
Output: 2
Explanation: The longest special substring which occurs thrice is "aa": substrings "aaaa", "aaaa", and "aaaa".
It can be shown that the maximum length achievable is 2.

Example 2:

Input: s = "abcdef"
Output: -1
Explanation: There exists no special substring which occurs at least thrice. Hence return -1.

Example 3:

Input: s = "abcaba"
Output: 1
Explanation: The longest special substring which occurs thrice is "a": substrings "abcaba", "abcaba", and "abcaba".
It can be shown that the maximum length achievable is 1.

Constraints:

3 <= s.length <= 50
s consists of only lowercase English letters.

Solution

Brute Force

Because of the low constrains, a very simple brute force way would be: we get all the special subarrays, and then calculate each one’s frequency, then get the largest length of the subarrays that meet the requirements.

Time complexity: o ( n 3 ) o(n^3) o(n3)
Space complexity: o ( 1 ) o(1) o(1)

With a more strict constrain, see this 2982. Find Longest Special Substring That Occurs Thrice II

Code

Brute Force

class Solution:def maximumLength(self, s: str) -> int:res = -1# s[i:j+1]for i in range(len(s)):for j in range(i, len(s)):if s[j] != s[i]:breaksub_string = s[i: j + 1]sub_string_fre = 0for k in range(0, len(s)):if k + j + 1 - i > len(s):breakif sub_string == s[k: k + j + 1 - i]:sub_string_fre += 1if sub_string_fre >= 3:res = max(res, j + 1 - i)return res

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com