1
我有一定的算法需要实现。基本上这些规则是:Python中的算法实现
- 一行上的第一个以空格分隔的标记将被定义的单词。
- 后面的令牌将被定义。如果定义是“。”,则该单词是原语,即没有定义的单词。
- 输出是一个逗号分隔的单行文本,其中只包含一次字典中的每个单词。每个单词只能在其定义中的所有单词后面打印。请注意,对于某些输入集,可能有多个有效输出。
例如输入:
Civic Honda Car
Honda Manufacturer
VW Manufacturer
Manufacturer .
Car .
Beetle VW Car
一些可能的输出:
Car, Manufactor, Honda, VW, Beetle, Civic
Manufacturer, VW, Car, Beetle, Honda, Civic
Manufacturer, Honda, VW, Car, Beetle, Civic
我的实现:
def defIt(pre, cur):
# If previous and current strings are the same, no action take
if pre == cur:
return pre
# Split two strings to list
l_pre = pre.split()
l_cur = cur.split()
# If previous string length is shorter than the current string length, then swap two lists
if len(l_pre) < len(l_cur):
l_pre, l_cur = l_cur, l_pre
found = False
for j, w_cur in enumerate(l_cur):
for i, w_pre in enumerate(l_pre):
if w_pre == w_cur:
found = True
return ' '.join(l_cur[j:] + l_cur[:j] + l_pre[:i] + l_pre[(i + 1):])
if not found:
return ' '.join(l_cur[1:] + [l_cur[0]] + l_pre)
只是无法得到它的权利。我错过了什么?非常感谢。
非常感谢。我不擅长图表,以前从未考虑过使用图表。 – user1044566
如果此答案符合您的需求,请点击其分数旁边的复选标记。 – wberry