【发布时间】:2012-05-02 21:17:33
【问题描述】:
朋友们,还有另一种情况需要解决。我正在解决没有应用Linq的问题。但是如果您在Linq中分享您的代码,我希望这是一个学习Linq的好机会。
它被称为火焰
F - 朋友
L - 情人
A - 仰慕者
M - 结婚(丈夫)
E - 敌人
S - 姐姐
问题描述:
将给出两个名字(男性,女性)。我们必须删除两个名字中的共同字母。然后我们必须在从两个名称中删除共同字符后计算剩余字母的数量。最后,我们必须迭代字符串 FLAMES 并删除 FLAMES 中的字母,直到我们到达剩下的单个字符。剩下的单个字符显示了关系。我将在下面的示例中更详细地解释该过程。(忽略大小写和空格)。
例子:
第 1 步
Male : Albert
Female : Hebarna
字母“a”、“e”、“b”在这两个名称中都很常见。
(从两个字符串中删除这些字母,即使名称“Hebarna”包含两个“a”,您也可以从两个字符串中删除单个“a”,因为名称“Albert”只有一个“a”)。
结果字符串是
Male : $ l $ $ r t
Female: H $ $ $ r n a
第 2 步:
计算两个字符串中剩余的字母。
计数:7
第 3 步:
使用计数我们必须以下列方式迭代字符串“FLAMES”
F L A M E S
1 2 3 4 5 6
7
(Here the count 7 ends at F ,so strike F)
你会得到
$ L A M E S
(如果它是最后一个字母(“S”),则再次从紧接的下一个字母(它不应该被击中)开始计数,然后如果“F”尚未被击中,则从第一个字母“F”开始。
$ L A M E S
(igonre) 1 2 3 4 5
(ignore) 6 7
在数数时,不要考虑打出的字母。
$ L $ M E S
1 2 3
ignore 4 ignore 5 6 7
"s" 将被击中。
$ L $ M E $
ignore 1 ignore 2 3
4 ignore 5 6
7
“L”将被击出
$ $ $ M E $
ignore 1 2 ignore
ignore ignore ignore 3 4 ignore
5 6
7
最后“M”将被击中。那么剩下的字母是“E” 所以阿尔伯特是赫尔巴纳的敌人。
更新: 字母“r”在这两个名字中也很常见。我忘了打出来。无论如何过程与解释相同。谢谢指出。
【问题讨论】:
-
这不是成功关系的良好基础。
-
谢谢。但是,我考虑过逻辑。 :)
-
'r' 在这两个名字中也很常见
-
糟糕,我错过了那个。感谢您指出。我赞成您的评论。