我需要在java中创建一个检查两个Char列表的递归方法。 如果第二个列表包含第一个列表中的所有字符至少一次,并且顺序相同,它应该返回true,否则它应该返回false。例如: 例如:Java中的链接列表 - 比较两个列表
列表1:“abbcd”(节点中的每个字符),列表2:“abbcccddd”(节点中的每个字符)这应该返回true。例子2:“abbcd”,列表2:“abcd”这应该返回false。
我有一些想法,但不能达成明确的解决方案。 想法任何人?
我需要在java中创建一个检查两个Char列表的递归方法。 如果第二个列表包含第一个列表中的所有字符至少一次,并且顺序相同,它应该返回true,否则它应该返回false。例如: 例如:Java中的链接列表 - 比较两个列表
列表1:“abbcd”(节点中的每个字符),列表2:“abbcccddd”(节点中的每个字符)这应该返回true。例子2:“abbcd”,列表2:“abcd”这应该返回false。
我有一些想法,但不能达成明确的解决方案。 想法任何人?
我假设您使用通常的节点结构,并带有数据元素和对下一个节点的引用。那么可以定义函数如下:
包含(NULL,草堆)=真(因为每个字符串包含空字符串)
含有(图案,NULL)= FALSE(因为空字符串中不包含任何模式)
包含(模式,草堆)=包含(pattern.next,haystack.next)如果pattern.data = haystack.data (我们找到了一个匹配,并继续到下一个项目在这两个列表中)
包含(模式,草堆)=包含(pattern.next,haystack.next)否则(我们没有发现任何比赛,并与在草堆下一个字符尝试)
的为了要求也简化了问题。
考虑这两个名单迭代,同时具有略微不同的推进规则:
快乐编码。
你有什么想法? – Grammin
如果这是作业,请标记为这样。 – home
顺便说一句:为什么例2应该返回'false'? – home