gpt4 book ai didi

java - 为什么下面可以判断str1和str2是否是字谜?

转载 作者:行者123 更新时间:2023-12-01 07:46:21 25 4
gpt4 key购买 nike

我正在阅读代码片段,我想知道为什么以下内容可以检查 str1 和 str2 是否是字谜。

boolean result =  str1.chars().allMatch( c1 -> str2.chars()
.anyMatch( c2 -> c1 == c2) );

我特别困惑的是如果str1 = "abc"str2 = "cbad",结果也应该是true,对吗?

最佳答案

I am particularly confused about if str1 = "abc" str2 = "cbad", the result should be also true, right?

代码将返回 true , 是的。所以不,这不是对字谜的有效检查,因为在您引用的示例中,它会说它是字谜,但它不是(因为 str1 没有 d )。

在字谜中,两个字符串需要具有相同字母的相同出现次数。这样做的一个副产品是它们需要具有相同的长度(尽管在某些字谜方案中,您可以改变空格数量并添加/删除标点符号)。

因此,有效的检查需要确保 str1 中的每个字符(可能忽略空格和标点符号)消耗 str2 中的一个字符,并且 str2 中没有任何字符留在最后(可能忽略空格和标点符号)。有很多方法可以做到这一点(计算 str1 中的出现次数,也许在 Map 中,然后从 str2 中倒数匹配项;有一个从中删除字母的字符串,等等)引用的代码只是不是其中之一。

关于java - 为什么下面可以判断str1和str2是否是字谜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51465608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com