1

问:解决这个问题的最佳方法是什么?

例如,如果这两个值是“chocolate”和“cockroach”,那么函数应该返回“choa”

研究:

我发现 find() 或将其放入列表中有助于构建函数。

代码:这是我遇到问题的地方!

Value1 = input("Please input a word: ")
Value2 = input("Please input a second word: ")
[How do I find similar letters in two words]
print(similar_letters)

例子:

请输入一个词:你好
请输入第二个字:嘿
word中的字母是:'he'
4

2 回答 2

4

也许你的意思是常见的字符?使用集合,只要您不介意它们删除重复项并更改元素的顺序:

s1 = set("chocolate")
s2 = set("cockroach")

"".join(s1 & s2)
=> "ahco"
于 2013-08-10T02:06:31.763 回答
3

原始答案不正确(为了评论而保留)。结果在许多情况下是错误的,特别是在 sampleValue1Value2permuted 时。

output= [ x for x in list(Value1) if x in list(Value2) ]

正确答案(恕我直言),如果所需的结果是在输出字符中表示一次Value1Value2多次出现。

''.join( [ x * min(Value1.count(x),Value2.count(x)) for x in sorted( set(Value1) | set(Value2) ) ] )

对于示例Value1='chocolate'and Value2= 'cockroach',输出是'acchoo'(这里有什么双关语吗?:-))。 sorted仅具有使字符按字母顺序显示的功能(因此,使确切的结果字符串稳定)。

于 2013-08-10T02:14:00.080 回答