gpt4 book ai didi

javascript - 检查文本是否包含序列。字符的相邻性不是必需的

转载 作者:行者123 更新时间:2023-11-28 04:57:04 24 4
gpt4 key购买 nike

我正在尝试创建一个函数,如果序列存在则回答 true,如果不存在则回答 false。但这与正常检查字符串是否包含子字符串不同,因为不需要字符的相邻性。例如,在字符串“Lord Of The Rings”中,子字符串“LOTR”或“other”应该返回 true,因为可以在字符串中找到它们。使用典型的

function contains(text, sequence) {
if (text.indexOf(sequence) !== -1){
return true;
}
return false;
}

console.log(contains("lord of the rings", "")); // True
console.log(contains("lord of the rings", "lord")); // True
console.log(contains("lord of the rings", "lens")); // True
console.log(contains("lord of the rings", "other")); // True
console.log(contains("lord of the rings", "l o t r")); // True
console.log(contains("lord of the rings", "Lord")); // False
console.log(contains("lord of the rings", "orks")); // False
console.log(contains("lord of the rings", "z")); // False

不起作用,它会在“LOTR”或“something”上返回 false,上面是我正在使用的一些示例

谢谢!

最佳答案

无聊(但有效)的 For 循环方法:

编辑为在知道结果时尽快终止循环;例如,当序列中剩余的字符多于文本中的字符时。

function contains(text, sequence) {
for (var i = 0, j = 0; i < text.length && j < sequence.length; i++) {
if (text.length - i < sequence.length - j) return false
if (text[i] === sequence[j]) j++
}
return j === sequence.length
}


console.log(contains("lord of the rings", "")); // True
console.log(contains("lord of the rings", "lord")); // True
console.log(contains("lord of the rings", "lens")); // True
console.log(contains("lord of the rings", "other")); // True
console.log(contains("lord of the rings", "l o t r")); // True
console.log(contains("lord of the rings", "Lord")); // False
console.log(contains("lord of the rings", "orks")); // False
console.log(contains("lord of the rings", "z")); // False

关于javascript - 检查文本是否包含序列。字符的相邻性不是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42463599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com