Javascript 给定密钥的序列搜索
Javascript 给定密钥的序列搜索,javascript,Javascript,确定键的字符是否按顺序出现,但不一定在序列中连续出现。我的代码对它们都返回true,我不知道该怎么办
函数序列搜索序列,键{
对于变量i=0;i
确定键的字符是否按顺序出现,但不一定在序列中连续出现。我的代码对它们都返回true,我不知道该怎么办
函数序列搜索序列,键{
对于变量i=0;iconsole.logsequenceSearch'caat'、'cat'//是的我建议使用正则表达式,它可能不是最快的方法,但它很简单:
函数序列搜索序列,键{
返回新的RegExp[…键]。加入“*”。testsequence;
}
控制台.logsequenceSearch'arcata'、'cat'//符合事实的
console.logsequenceSearch'c1a2t3','cat'//符合事实的
console.logsequenceSearch'cta',cat'//错误的
console.logsequenceSearch'caat'、'cat'//真简单解。此版本将按顺序跟踪键的出现顺序
function sequenceSearch(sequence, key) {
let i = 0;
for(let j = 0; j < sequence.length && i < key.length; j++)
if (sequence[j] === key[i]) i++;
return (i === key.length);
}
一些冗长的方法。运行两个循环,同时跟踪示例单词的位置,并只测试带有下一个键字母的剩余示例
函数序列搜索序列,键{
var s=0;
keyloop:
对于变量k=0;k控制台.logsequenceSearch'acaat'、'cat'//true您可能需要也可能不需要两个循环,就像我在包含的代码片段中所做的那样,但如果您不需要,最好不要处理所有事情。例如,给定sequenceSearch'catarcatatac'、'cat',我希望它在开始时找到cat,然后停止查找之后找到的任何字符。您也不需要处理所有的密钥。如果你甚至找不到c的匹配项,而我们在序列的末尾,我们可以停下来
由于提前返回,并且对循环的运行方式非常挑剔,您可以避免走得太多。例如有关更多详细信息,请参见后面的代码段注释版本
函数序列搜索序列,键{
常数l=序列长度;
设i=0;
对于密钥的const keyChar{
对于;iconsole.logsequenceSearch'caat'、'cat'//事实上我不允许使用正则表达式