每日一题 LeetCode 有效的数字 Python实现

有效的数字(简单题)

class Solution:
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""

    a=list(s)
    b=[]                            #存放左括号的栈  qc:list当做栈
    c={‘(‘:‘)‘,‘[‘:‘]‘,‘{‘:‘}‘}     #字典存储     qc;key:value 键:值

    for i in a:
        if i==‘‘:
            return True
        elif i in c:
          #如果是字典中的键,即左括号,放进栈
            b.append(i)
        else:
            if len(b)==0: #先判断是否有左括号存在
                return False
            else:
                 #字典得到该键的值==栈顶值对应的右括号
                if c.get(b[-1])!=i:
                    return False
                else:
                    del b[-1]      #删除栈顶元素
    if len(b)!=0:  #若还存在左括号,此时已没有右括号,出错
        return False

    return True
# 用到了数据结构中的栈 在Python中可以只通过list来实现

原文地址:http://blog.51cto.com/13930723/2311420

时间: 2024-11-02 08:24:22

每日一题 LeetCode 有效的数字 Python实现的相关文章

老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

老男孩教育每日一题-2017-04-17: 使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警. 今天是老男孩教育每日一题陪伴大家的第29天.

<每日一题>题目16:简单的python练习题(1-10)

#1.python程序中__name__的作用是什么? __name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用),则显示为导入模块的名称. 扩展:常常这样写if __name__ == "__main__":来表名这是整个工程开始运行的入口. 效果:如果直接从这个文件执行,if为Turn,可以运行if后面的程序 如果被调用,if为False,不执行if后面的程序 #2.表达式int('11111',2

每日一题-——LeetCode(121)买卖股票的最佳时机

题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格.如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润.注意你不能在买入股票前卖出股票. 示例 输入: [7,1,5,3,6,4] 输出:5 定义:minval = min(minval,prices[i]) 当前的最小价格 maxp = max(maxp,prices[i]-minval) 当前的最大利润 class Solution(object): def maxProfit(

​老男孩教育每日一题-第79天-命令风暴:打印出001 002 003 这样的格式的数字

题目: 打印出001 002 003 这样的格式的数字 参考答案 方法1:{}生成序列 [[email protected] ~]# echo 00{1..3} 001  002  003 方法2:seq法 [[email protected] ~]# seq -w 100 001 002 003 004 005 006 007 ---- [[email protected] ~]# seq -w 100 |sed -n '1,3p' 001 002 003 此法效率不高.尽量让第一次的结果越接

老男孩教育每日一题-第126天-通过shell脚本打印乘法口诀表

问题背景: 生成9*9乘法表 [[email protected] ~]# seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}' 1x1=1 1x2=2   2x2=4 1x3=3   2x3=6   3x3=9 1x4=4   2x4=8   3x4=12  4x4=16 1x5=5

老男孩教育每日一题-2017年5月16日-说说{}与[]这两个符号有什么区别?

1.题目 2.参考答案 这两个看似简单的符号,其实内容还不少.我们一起来看看. 2.1 通配符中 通配符在linux中通常用来匹配/找文件名或目录名.最常用的就是 ls -l *.txt显示出所有以.txt结尾的文件. 2.1.1  {} 花括号,大括号,生产序列 [[email protected] regular]# echo {a..z} {0..9} a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8

[leetcode]Trapping Rain Water @ Python

原题地址:https://oj.leetcode.com/problems/trapping-rain-water/ 题意: Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For example, Given [0,1,0,2,1,0,1,3,

[leetcode]Longest Consecutive Sequence @ Python

原题地址:https://oj.leetcode.com/problems/longest-consecutive-sequence/ 题意: Given an unsorted array of integers, find the length of the longest consecutive elements sequence. For example,Given [100, 4, 200, 1, 3, 2],The longest consecutive elements seque

[leetcode]Insertion Sort List @ Python

原题地址:http://oj.leetcode.com/problems/insertion-sort-list/ 题意:对链表进行插入排序. 解题思路:首先来对插入排序有一个直观的认识,来自维基百科. 代码循环部分图示: 代码: class Solution: # @param head, a ListNode # @return a ListNode def insertionSortList(self, head): if not head: return head dummy = Lis