290. Word Pattern

290. Word Pattern

题目:
https://leetcode.com/problems/word-pattern/

难度 : Easy

4.pattern = "abba", str = "dog dog dog dog" should return false.

因为这个的限制,所以中间加了一个loop用来查询是否这个a对应的已经出现过了。

不过其实也可以用两个dictionary来处理,可以O(n^3) -> O(n^2)

class Solution(object):
    def wordPattern(self, pattern, str):
        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        strList = str.split(' ')
        if len(pattern) != len(strList):
            return False
        lookup = {}
        for i in range(len(strList)):
            if pattern[i] not in lookup:
                for key in lookup:
                    if lookup[key] == strList[i]:
                        return False
                lookup[pattern[i]] = strList[i]
            elif lookup[pattern[i]] != strList[i]:
                return False
                
        return True
       

另外看到一段非常简短代码,使用了map函数,有待学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容