码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode——1

时间:2015-10-28 01:14:00      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

 

  从国庆到现在都没更新 这个月也真是过的凄惨 前半个月一直在看病 忧郁了大半个月 还好是缓过来了 很感谢那段时间朋友们的陪伴 以后要更爱自己才是 嗯 之后看了一周多的hadoop 无奈总是出现各种问题 其实真的很想感受下hadoop的神奇之处 不过还是暂且搁置吧 缓几天再去看也许问题就解决了呢也不一定 今天刚忙完 加入了一个新的team 感觉很棒 嗯 总有一种离自己梦想更进一步的感觉 但是内心却还是蛮忧伤的 也许这段时间的力不从心让自己有点失望吧 希望自己早日康复 还有很多梦想想要去实现呢 有些梦想就是给我一百万个理由我也不要放弃

  嗯 言归正传 从今天起 就开始看看LeetCode中的算法 首先还是从简单的开始~ 

WordPattern 

(1)  问题重述

给定一个pattern和一个str,判断输入的str是否满足相同的pattern。

例如:

pattern = "abba", str = "dog cat cat dog" should return true.

pattern = "abba", str = "dog cat cat fish" should return false.

pattern = "aaaa", str = "dog cat cat dog" should return false.

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

(2)  问题分析

  判断str是否满足相同的pattern,根据所给的实例,该问题必须同时满足两个条件:pattern和str的长度相同;pattern中相同单词所在的位置对应于str中也分别为相同的单词。

  两个条件必须同时满足,长度相同可直接用len(),对于第二点,首先想到的是dict,进而为了简化代码,结合set()和zip()进一步优化,首先得到的代码如下:

class Solution(object):
    def wordPattern(self, pattern, str):     

        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        self.pattern = pattern
        self.str = str
        words = str.split()
        if len(pattern) != len(str) or set(zip(pattern,words)) != set(pattern):
            return False
        return True

进一步优化得到:

class Solution(object):
    def wordPattern(self, pattern, str):      

        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """

        self.pattern = pattern
        self.str = str
        words = str.split()
        return len(pattern) != len(str) or set(zip(pattern,words)) != set(pattern)

结合运行时间,说明代码确实有了一定程度的优化。嗯,我也只能做到这个程度的。

 

本想着再看看其它东西的,无奈状况并不是很理想,嗯,早点休息,晚安。

希望明天一切都会好起来~

LeetCode——1

标签:

原文地址:http://www.cnblogs.com/ybjourney/p/4916042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!