作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实现简单搜索,但没有得到预期的结果。任何人都可以在这里指出可能的错误是什么。
function naive(string, str) {
for (let i = 0; i <= string.length - str.length; i++) {
if (string[i] == str[0]) {
let counter = 1
for (let j = 1; j <= str.length; j++) {
if (string[i + j] == str[j]) {
counter++;
console.log(counter)
} else
counter = 0;
}
if (counter == str.length) {
console.log(`${counter} pattern matched at ${i}`)
}
} else
console.log('nothing matched')
}
}
最佳答案
var match_found = false;
function naive(string, str){
for(let i =0; i <= string.length - str.length; i++){
if(string[i] == str[0]){
let counter= 1
for(let j = 1; j < str.length; j++){
if(string[i + j] == str[j]){
counter++;
}else{
break;
}
}
if(counter == str.length){
console.log('Pattern matched at ' + i);
match_found = true;// can break; here if you wish to, else it will give you all matches present
}
}
}
if(match_found === false){
console.log(str + ' not found in ' + string);
}
}
naive('abcdgggabcdggg','ggg');
你 increment
counter
当有比赛时,但你需要break
有 mismatch
的循环.
您的内部 for 循环条件需要有 j < str.length
而不是 j <= str.length
, 因为索引从 0
开始.
else console.log('nothing matched')
.你不能 just instantly
决定那个。如果一个字符串索引不匹配,您仍然需要继续寻找其余的索引。最好的方法是为它维护一个 bool 标志,如上面的代码所示。
关于javascript - 天真的字符串匹配算法出了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017390/
我使用 Visual Studio Professional 2012。我成功地预编译了一个类(头文件和源代码)。几天后,当编译另一个使用前一个类的类(目前仅用于头文件)时,编译器发现缺少引用 if(
我正在尝试搜索数据库,然后使用源自原始搜索的名称标记输出,"derived_name"在下面的可重现示例中。我正在使用 dplyr管道 %>% ,并且我在准报价和/或非标准评估方面遇到了麻烦。具体来说
我是一名优秀的程序员,十分优秀!