【发布时间】:2026-01-02 01:25:01
【问题描述】:
我目前正在研究另一个用户的代码,以解决 LeetCode 的一个编码问题。我的问题是关于他的代码的某些方面。这是the question的链接。
问题:
为什么这个用户使用# 来标记数组的结尾?
在第二个if 情况下,用户写道:
ans.push(nums[t] + '->' + (nums[i-1]))
现在,我明白这句话的作用了。我的问题是:为什么这会产生["0->2",...] 而不是[0"->"2,...] 的输出?
var summaryRanges = function(nums) {
var t = 0
var ans = []
nums.push('#')
for(var i=1;i<nums.length;i++)
if(nums[i]-nums[t] !== i-t){
if(i-t>1)
ans.push(nums[t]+'->'+(nums[i-1]))
else
ans.push(nums[t].toString())
t = i
}
return ans
}
【问题讨论】:
-
nums[t] + '->' + (nums[i-1])是字符串连接。0 + "X" = "0X" -
不可能产生
0"->"2,因为这是一个语法错误。
标签: javascript arrays string