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

seo 新旧网站 两个域名seo是什么东西

seo 新旧网站 两个域名,seo是什么东西,福州cms建站,网站建设 办公系统古语有云:“事以密成,语以泄败”! 关于字符串解码: 题目:题解:js代码:代码中遇到的方法:repeat方法:为什么这里不用this.strstack.push(result)? 题目&#x…

古语有云:“事以密成,语以泄败”!

关于字符串解码:

  • 题目:
  • 题解:
  • js代码:
  • 代码中遇到的方法:
    • repeat方法:
    • 为什么这里不用this.strstack.push(result)?

题目:

在这里插入图片描述

题解:

假设输入字符串为 s = “3[a2[c]]”,解码过程如下:

  1. 初始化变量‌:
    numStack:一个数组,用于存储遇到的数字(表示重复次数)。
    strStack:一个数组,用于存储待拼接的字符串片段。
    num:一个变量,用于临时存储当前解析到的数字(倍数)。
    result:一个字符串,用于临时存储当前构建的字符串结果。
  2. 扫描到 3,num = 3。
  3. 扫描到 [,将 result = “” 推入 strStack,将 num = 3 推入 numStack,然后重置 result = “” 和 num = 0。
  4. 扫描到 a,追加到 result,result = “a”。
  5. 扫描到 2,num = 2。
  6. 扫描到 [,将 result = “a” 推入 strStack,将 num = 2 推入 numStack,然后重置 result = “” 和 num = 0。
  7. 扫描到 c,追加到 result,result = “c”。
  8. 扫描到 ],从 numStack 弹出 2,从 strStack 弹出 “a”,构建子串 “ac”.repeat(2) = “acc”,然后 result = “acc”。
  9. 扫描到 ],从 numStack 弹出 3,构建最终字符串 “acc”.repeat(3) = “accaccacc”。
  10. 因此,decodeString(“3[a2[c]]”) 的返回值是 “accaccacc”。

也就是有四条分支, 分别是 如果是数字 、[ 、 ] 、 字符串的情况。

‌ 1. 处理数字字符‌:如果 char 是一个数字(!isNaN(char)),则将其转换为数字,并累加到 num 上。这里使用了 num = num * 10 + Number(char); 来处理多位数字。
‌2. 处理 [ 字符‌:如果遇到 [,表示一个重复模式的开始。将当前的 result 字符串推入 strStack,以便稍后在其后追加重复的字符串。将当前的 num(表示重复次数)推入 numStack。重置 result 和 num 为空或零,为处理新的字符串片段和可能的数字做准备。
‌3. 处理 ] 字符‌:如果遇到 ],表示一个重复模式的结束。从 numStack 弹出重复次数 repeatTimes。从 strStack 弹出之前保存的字符串片段,并将其与当前 result 字符串的 repeatTimes 次重复结果拼接起来,然后存回 result。
‌4. 处理普通字符‌:如果 char 不是数字、[ 或 ],则将其追加到 result 字符串的末尾。

js代码:

/*** @param {string} s* @return {string}*/
var decodeString = function(s) {let numStack = [];let strStack = [];let num = 0;let result = "";for(let char of s){if(!isNaN(char)){num = num * 10 + Number(char); }else if(char == '['){strStack.push(result);numStack.push(num);num = 0;result = "";}else if(char == ']'){let reapTime = numStack.pop();result = strStack.pop() + result.repeat(reapTime);}else{result += char;}}return result;};

代码中遇到的方法:

repeat方法:

在JavaScript中,repeat方法是String对象的一个内置方法,它用于将一个字符串重复指定次数,并返回一个新的字符串。这个方法不会改变原始字符串,而是创建一个新的字符串作为结果。

举例:

let originalString = "abc";
let repeatedString = originalString.repeat(3);
console.log(repeatedString); // 输出 "abcabcabc"

写法:

str.repeat(count)

count:一个整数,表示字符串应该被重复的次数。如果count是0,则返回一个空字符串。如果是负数,会抛出一个RangeError异常。

返回值:
一个包含原始字符串重复count次的新字符串。

注意事项:

  • 如果count是一个小数,它会被自动转换为整数,小数部分会被舍弃。
  • 如果count是Infinity或者是一个大于Number.MAX_SAFE_INTEGER(即253 - 1)的数,会抛出RangeError,因为JavaScript无法处理这么大的字符串。
  • repeat方法是一个不可变的操作,它不会修改原始字符串,而是返回一个新的字符串。

举例二:

// 使用repeat方法生成一个由10个"-"组成的字符串(分隔符)
let dashes = "-".repeat(10);
console.log(dashes); // 输出 "----------"// 使用repeat方法和模板字符串生成一个带有边框的文本
let text = "Hello, world!";
let borderedText = `|${text.repeat(3)}|`;
console.log(borderedText); // 输出 "|Hello, world!Hello, world!Hello, world!|"

为什么这里不用this.strstack.push(result)?

this关键字通常用于访问对象的属性或方法。然而,decodeString函数代码中,并没有使用this来引用任何对象的属性或方法,而是直接使用了局部变量strStack。因为strStack是在函数内部定义的,作为函数作用域内的一个变量,它不需要通过this来访问。

这里有几种情况可能会让你看到this.strStack这样的用法:

  • 对象的方法‌:如果strStack是某个对象的属性,并且正在该对象的方法内部访问它,那么会使用this.strStack。但在代码中,strStack是一个局部变量,不是对象的属性。
  • 类的成员变量‌:在ES6及更高版本的JavaScript中,如果在一个类的方法内部访问类的成员变量(即属性),也会使用this。但在代码中,并没有使用类。
  • 闭包或上下文改变‌:在某些情况下,可能会看到函数内部的this被用来引用外部上下文(比如,在回调函数或箭头函数中,this的值可能会根据它是如何被调用的而改变)。但在decodeString函数中,并没有这样的上下文改变。
http://www.ds6.com.cn/news/59743.html

相关文章:

  • 网站降权恢复sem是什么品牌
  • 空间数据云网站百度搜索排行榜前十名
  • wordpress后台打开很慢东莞整站优化排名
  • 网站建设与管理 期末软文营销
  • 先网站开发后软件开发晋江友情链接是什么意思
  • 广州自助建设网站平台合肥百度seo排名
  • 门户网站开发人员招聘信息靠谱的影视后期培训班
  • qq空间关闭申请网站怎么推广自己的产品
  • 开一个网站建设公司免费二级域名生成网站
  • dnf免做卡怎么领取网站信息流推广渠道
  • seo网站优化教程sem推广外包
  • iis7建设网站推广模式包括哪些模式
  • 临海网站开发公司网站推广的常用途径有哪些
  • wordpress 横向扩展玉溪seo
  • 卡盟网站怎么做图片关键词有哪些关联词
  • 义乌建设局网站打不开短视频推广平台
  • 如何把产品放到网上销售吴中seo页面优化推广
  • 广州企业网站设计公司郑州seo优化推广
  • 哪家公司网站制作好如何进行搜索引擎的优化
  • 龙岗区网站建设公司seo技术外包
  • 云南云桥建设股份有限公司官方网站产品运营推广方案
  • 建设一个电影网站需要多少钱西地那非片的功能主治
  • 上海网站设计见建设百度广告标识
  • 设计师导航网站源码seo交流论坛seo顾问
  • 互联网网站建设情况统计表网站策划报告
  • 衡天主机怎么做网站系统优化的方法
  • 东莞企业网站建设预算大概多少企业网站的作用有哪些
  • 如何在电脑上建设网站百度正版下载
  • 宝鸡手机网站开发搜索推广
  • 张家港网站设计建设网站推广计划方案