LeetCode-459. 重复的子字符串(Goland实现)

野性酷女 2022-12-01 01:19 270阅读 0赞

LeetCode题号:459. 重复的子字符串

题目描述:

  1. 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000

示例 1:

  • 输入: “abab”
  • 输出: True
  • 解释: 可由子字符串 “ab” 重复两次构成。

示例 2:

  • 输入: “aba”
  • 输出: False

解题思路:

  1. 最先想到的就是暴力破解,定义一个子串,子串先取全串的第一个字母开始,接着拿子串去匹配全串,如果子串递增到跟全串一样,则返回false,不满题意,如果子串全部匹配成功,则返回true ,子串依次递增。
  1. func repeatedSubstringPattern(s string) bool {
  2. //子串
  3. var str1 string
  4. //子串长度
  5. var strLen int
  6. //全串长度
  7. var l = len(s)
  8. for i := 1; i <= l; i++ {
  9. str1 = s[0:i]
  10. strLen = len(str1)
  11. //若子串跟全串一样,直接返回false
  12. if len(str1) == len(s) {
  13. return false
  14. }
  15. //根据子串去匹配全串是否全部由子串组成
  16. for j := 0; j <= l-strLen; j+=strLen{
  17. //按子串str1长度从全串中取得str2
  18. str2 := s[j : j+strLen]
  19. //若str2不匹配,直接跳出匹配循环
  20. if str1 != str2 {
  21. break
  22. }
  23. //表示子串全部匹配成功,则一定会执行返回true
  24. if j == l-strLen{
  25. return true
  26. }
  27. }
  28. }
  29. return false
  30. }

❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ

❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~

❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】

❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读

    相关 459. 重复字符串

    给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: "abab"