【发布时间】:2014-09-09 04:25:50
【问题描述】:
所以我的校园教授让我们解决这个练习,但有点难,我现在正在尝试 2 天。无论如何,它是:
我得到了一个列表,例如[a,b,c,d,w,n,i,c,k,a,b,c,d,w],在这个列表中我必须找出是否有“可疑”子列表。如果
1) 相同的子列表在开头和结尾,
2) 它包含“w”,
3) 它的长度是 5。
我给出的列表有一个“可疑”子列表。
如果存在可疑子列表,则程序必须返回子列表,否则程序必须返回 [o,k]。
欢迎任何想法,非常感谢! (对不起,如果我发布了错误)
编辑
所以经过一些帮助,这里是asnwer:
checkMessage1(L,SL):-
suspiciousMessage1(L,SL).
checkMessage1(L,[o,k]):-
not(suspiciousMessage1(L,SL)).
suspiciousMessage1(L,SL):-
append(SL,Last,L),
append(_,SL,Last),
length(SL,5),
member(w,SL).
【问题讨论】:
-
请向我们展示您的尝试,以及您遇到的问题。
-
add(H,[H|T]). finderSuspect([H|T],Νumber,L1,L2,X):- Number>0 add(H,L1), Number1 is Number - 1, finderSuspect(T,Νumber1,L1,L2,X).我尝试“使用”它来获取列表中的前五个字符...我知道它没有很多