这段代码在我的电脑里有效,但在leetcod里不行

2024-06-26 14:27:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图解决这个问题。当我在我的笔记本上运行它时,输出是好的,但当我把它提交给leetcode时就不行了。花了一个小时还是搞不懂。夫妇的眼睛当然应该帮助更多。在

class Solution28(object):
def replaceWords(self, dict, sentence):
    """
    :type dict: List[str]
    :type sentence: str
    :rtype: str
    """
    dict=sorted(dict)
    slist=sentence.split(' ')
    #print slist
    n = len(slist)
    for i in xrange(n):
        for d in dict:
            if d in slist[i]:
                slist[i]=d
                break
            elif d > slist[i]:
                break
    return " ".join(slist)

obj = Solution28()
print obj.replaceWords(["cat", "bat", "rat"],"battery cattle was rattled by the battery")
####o/p from my laptop: bat cat was rat by the bat
####o/p in leetcode: battery cat was rat by the battery

Tags: theinbydictsentencecatwasbattery
1条回答
网友
1楼 · 发布于 2024-06-26 14:27:08

当单词不在开头时,此代码中存在一个算法错误。在

例如,此代码将认为“rat”是“mouserat”的根。在

但是,如果更改行:

if d in slist[i]:

^{pr2}$

当我在leetcode中测试时,它通过了。在

相关问题 更多 >