我正在尝试创建一个递归函数,该函数接收一个字符串string-1,并检查另一个字符串string-2是否为子序列。我有一些基本案例可以工作,但无法使整个程序正常工作。
我尝试做的是实现“成员”?功能。我希望它执行的操作是检查字符串2中的每个元素是否是字符串1的一部分,而且还要检查它们的字符是否顺序正确。
例如,给定字符串:hello,如果另一个字符串为:hel,ell,ello,hello或hlo,则函数将生成true。如果其他字符串为ehl,oll或helllo,则该函数将产生false。
(define (possible-subset? word subset-word)
(cond [(> (length (string->list subset-word)) (length (string->list word)) ) false]
[(equal? (string->list word) (string->list subset-word)) true]))
上面提供的代码将处理清楚的赠品,这些赠品将告诉您单词是否为子集。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
以hello和hlo为例。
有了hello和hlo,就变成了ello和lo
使用ello和lo减少到llo和lo,然后再次应用规则1生成lo和o,其中规则2将其减少到o和o,规则1减少为两个空字符串
根据规则3,结果为匹配项。