当前位置: 首页 > news >正文

房屋装修效果图怎么制作企业网站优化工具

房屋装修效果图怎么制作,企业网站优化工具,专业网站建设出售,永久免费观看不收费的软件appLeetcode1071. 字符串的最大公因子 对于字符串 s 和 t,只有在 s t … t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。 给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能…

Leetcode1071. 字符串的最大公因子

对于字符串 s 和 t,只有在 s = t + … + t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。

给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2 。


示例 1:

输入:str1 = “ABCABC”, str2 = “ABC”
输出:“ABC”


示例 2:

输入:str1 = “ABABAB”, str2 = “ABAB”
输出:“AB”

示例 3:


输入:str1 = “LEET”, str2 = “CODE”
输出:“”


提示:

1 <= str1.length, str2.length <= 1000
str1 和 str2 由大写英文字母组成

方法一:最大公因子法

分析:

  1. 如果两个字符串有最大公因子那么str1+str2和str2+str1一定是一样的
    比如例一:str1 = “ABCABC”, str2 = “ABC” str1+str2 和 str2+str1 都是"ABCABCABC"
    如果两个字符串没有最大公因子那么str1+str2和str2+str1一定不一样
  2. 如果两个字符串有最大公因子那么str1,str2他们的长度一定符合辗转相除法,我们可以通过两个字符串的长度,计算出他们最大公因子的长度
    比如例一中str1的长度为6,str2的长度为3,6和3的最大公因数是3,输出的结果长度恰好是3
  3. 然后通过计算出来的长度使用substring()截取出来即可
	var gcdOfStrings = function (str1, str2) {if (str1 + str2 !== str2 + str1) return '' // 如果不满足最大公因子的条件直接返回空字符串const gcd = (a, b) => (a % b == 0 ? b : gcd(b, a % b))//辗转相除法return str1.substring(0, gcd(str1.length, str2.length))};

运行结果

在这里插入图片描述

方法二:暴力

这个效率比较慢,主要是针对不满足条件的情况会比较浪费时间,当然可以在前面加一个不满足条件的直接返回空来解决这个效率慢的问题

源码版

var gcdOfStrings = function (str1, str2) {let factor = str1.length > str2.length ? str2 : str1;while (factor.length) {if (str1.split(factor).every(e => e === '') &&str2.split(factor).every(e => e === '')) {return factor;}factor = factor.slice(0, -1);}return ''
};

解析版

  var gcdOfStrings = function (str1, str2) {let factor = str1.length > str2.length ? str2 : str1 //使用factor先存储str1和str2中的较短者// console.log(factor, 'factor')while (factor.length) {console.log(str1.split(factor), " str1.split(factor)")console.log(str2.split(factor), " str2.split(factor)")// 判断如果str1 和str2 都能被factor所分隔则这时的factor就是正确答案if (str1.split(factor).every(e => e === '') &&str2.split(factor).every(e => e === '') //split是将字符串根据传入的内容进行分隔存放到一个数组中 // "abc".split('b')=>['a','c']   "abbbc".split('b')=> ['a', '', '', 'c']// every是遍历数组中的每个元素如果都满足传入的函数的要求则返回true 否则false) {return factor}factor = factor.slice(0, -1)//截取factor 每次删除factor字符串中的最后一个元素console.log(factor, "factor")}return '' //如果循环结束了还没有返回,则没有找到符合条件的factor 返回空字符串}console.log(gcdOfStrings("ABABAB", "ABAB"))console.log("abbbc".split('b'));

运行结果

在这里插入图片描述

方法三:暴力仿求最大公因子的辗转相除法

源码版

var gcdOfStrings = function (str1, str2) {if (str1 + str2 !== str2 + str1) return ''return strGcb(str1, str2)}
function strGcb(a, b) {return (a.split(b).every(e => e === '')) ? b : strGcb(b, a.split(b).filter(e => { if (e !== '') { return e } }).join())
}

解析版

 var gcdOfStrings = function (str1, str2) {if (str1 + str2 !== str2 + str1) return '' //首先判断str1 str2是否有最大公因数 return strGcb(str1, str2)}function strGcb (a, b) {return (a.split(b).every(e => e === '')) ? b : strGcb(b, a.split(b).filter(e => { if (e !== '') { return e } }).join())// a % b === 0 ? b : isgy(b, a % b)  上一行代码是比着这个写出来的// a.split(b).every(e => e === ''))  这个等价于 a%b===0 // split是将字符串根据传入的内容进行分隔存放到一个数组中 // "abc".split('b')=>['a','c']   "abbbc".split('b')=> ['a', '', '', 'c']// every是遍历数组中的每个元素如果都满足传入的函数的要求则返回true 否则false// a.split(b).filter(e => { if (e !== '') { return e } }).join() 等价于 a % b// filter() 遍历数组 得到满足条件的返回值 返回一个新数组 // join() 将数组的每一项 用传入的值作为分隔符 拼接成一个字符串}

运行结果

在这里插入图片描述

http://www.yidumall.com/news/70639.html

相关文章:

  • 浦东网站建设公司游戏推广可以做吗
  • 适合女生的计算机专业有哪些百度seo排名优化公司哪家强
  • 山西长治做网站公司百度账户托管运营
  • 网站做百度推广划算吗怎么做推广赚钱
  • 做电影字幕的网站网站优化什么意思
  • 莱芜信息港金点子招聘seo优化名词解释
  • 做网站ps能用美图秀秀么新品上市怎么推广词
  • 注册1000万实缴10万靠谱吗网站seo基础优化
  • 网站域名跳转怎么弄百度指数有哪些功能
  • 做全世界的生意的网站武汉疫情最新动态
  • 做自媒体网站开发网络推广外包怎么接单
  • 域联网站建设全国新冠疫苗接种率
  • 公众平台网站建设哪家专业sem是什么意思呢
  • php做网站架构图如何制作链接推广
  • 美国做3d+h动画的网站百度网盘破解版
  • 温州专业微网站制作多少钱哪家公司网站做得好
  • 建设网站图片素材网站推广软件免费版大全
  • wordpress导航栏修改搜索引擎的优化和推广
  • 赣州市做网站超级外链吧外链代发
  • 鹤壁网站建设兼职搜索关键词优化排名
  • 怎么做网站平台教程艾滋病阻断药有哪些
  • 18款禁用软件app网站入口推广方案怎么做
  • xx旅行社网站建设方案 企网站技术解决方案为申请虚拟主机互联网推广的优势
  • 快看点号自媒体平台注册seo排名优化推广教程
  • 2019个人建设网站网站怎么宣传
  • 网站建设 学习什么百度收录好的免费网站
  • 网站建设怎么把代码放入网站上宣传推广图片
  • 怎么做hello官方网站百度搜索如何去广告
  • 电商网站销售数据分析软文推广公司
  • 武汉经济开发区汉南区教育云网站优化营商环境心得体会个人