lcs([ H|L1],[ H|L2],[H|Lcs]) :-
!,
lcs(L1,L2,Lcs).
lcs([H1|L1],[H2|L2],Lcs):-
lcs( L1 ,[H2|L2],Lcs1),
lcs([H1|L1], L2 ,Lcs2),
longest(Lcs1,Lcs2,Lcs),
!.
lcs(_,_,[]).
longest(L1,L2,Longest) :-
length(L1,Length1),
length(L2,Length2),
( Length1 > Length2
-> Longest = L1
; Longest = L2
).
Run Code Online (Sandbox Code Playgroud)
到目前为止这是我的代码.我怎样才能优化它以便打印前缀,例如:
["interview", "interrupt", "integrate", "intermediate"]
Run Code Online (Sandbox Code Playgroud)
应该回来 "inte"
Prolog有点生疏,有一段时间没做过:)
特定搜索树在级别3具有6个节点.在下一级别,有24个节点.3级的分支因子是什么?
答案是4,但有人可以告诉我为什么,我认为它是2.
A* 搜索将从节点 S 开始并继续到节点 G。在节点 S,打开列表将包含值分别为 7 和 6 的 A 和 B。创建一个表格,显示随着 A* 算法的进行,每个访问节点的打开列表。
谁能向我解释 A* 将如何搜索它。
open list = [S]; closed list = []
open list = [A,B]; closed list = [S]
whats next?
Run Code Online (Sandbox Code Playgroud) 嘿,我是Typescript的新手,在实现Event Target时遇到了一些麻烦。
Javascript中使用的event.target.matches的打字稿等效项是什么?
示例代码:
function myFunction() {
document.getElementById("myDropdown").classList.toggle("show");
}
// Close the dropdown menu if the user clicks outside of it
window.onclick = function(event) {
if (!event.target.matches('.dropbtn')) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 例如:["c","h","a","r"]应该打印"char".
它的atomic_list_concat(),但是我该怎么做呢:
longest_common_prefix([H1,H2|T], P) :-
maplist(append(P), L, [H1,H2|T]).
Run Code Online (Sandbox Code Playgroud) algorithm ×2
prolog ×2
a-star ×1
dom-events ×1
heuristics ×1
list ×1
prolog-cut ×1
prolog-dif ×1
search-tree ×1
typescript ×1