You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codecademy习题subLength()函数len=-1及字符间距计算逻辑疑问

代码逻辑解释

1. len = -1的作用

这里的初始值-1是作为未找到第一个目标字符的标记位:
因为字符串的索引是从0开始的正整数,-1不可能是合法的字符串索引,所以用这个值来区分「还没记录第一个目标字符的位置」的状态:

  • 遍历过程中第一次匹配到目标字符时,len还是初始值-1,就会把当前字符的索引赋值给len,用来保存第一个目标字符的位置
  • 第二次匹配到目标字符时,len已经不是-1了,就会进入长度计算的分支

2. 包含两个目标字符的子串长度计算逻辑

要求返回的是包含两个目标字符的子串长度,计算逻辑对应代码里的i - len + 1:

  • 此时len保存的是第一个目标字符的索引,i是第二个目标字符的索引
  • 两个索引的差值i - len得到的是两个位置之间的间隔数,比如第一个字符在索引2,第二个在索引5,差值是3
  • 要同时包含首尾两个字符,就需要在差值基础上加1,上面的例子计算结果就是5-2+1=4,对应子串长度为4,符合要求。

你可以用实际用例验证:比如调用subLength('school', 'o'),第一个o在索引3,第二个在索引4,计算得4-3+1=2,对应子串oo的长度为2,完全符合需求。

内容的提问来源于stack exchange,提问作者misssn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:06:04