这是问题:
编写一个名为的函数
isSubsequence
,它接受两个字符串并检查第一个字符串中的字符是否构成第二个字符串中字符的子序列。换句话说,函数应该检查第一个字符串中的字符是否出现在第二个字符串中的某个地方,而没有改变它们的顺序。
我有下面的解决方案,但有几个部分我没有得到:
为什么需要:if (!str1) return true;
我也没有得到这一行:if (i===str1.length) return true;
将不胜感激任何解释谢谢!
function isSubsequence(str1, str2) {
var i = 0;
var j = 0;
if (!str1) return true;
while (j < str2.length) {
if (str2[j] === str1[i]) i++;
if (i === str1.length) return true;
j++;
}
return false;
}
一只名叫tom的猫
叮当猫咪
相关分类