Codility每周一课:L7 Stacks and Queue
2019-01-28 本文已影响1人
AiFany
7.png
P7.3 Nesting
Determine whether a given string of parentheses (single type) is properly nested.
-
P7.3 嵌套
判断一个给定的串(单型)是否是括号嵌套
由N个字符组成的字符串S,只要满足下面描述中的任何一项,都为正确嵌套:
-
S是空的;
-
S的形式"(U)",其中U是正确嵌套的字符串;
-
S的形式为"VW",其中V和W是正确嵌套的字符串;
例如,字符串"(()(())())"是正确嵌套,但字符串"())"不是正确嵌套。
编写函数:
def solution(S)
如果字符串S是正确嵌套,则返回1,否则返回0。
例如,给定S="(()(())())",函数应返回1,给定S="())",函数应返回0。
假定:
-
N是区间[0..1000000]内的整数;
-
字符串S只包含字符"(" 和 ")"中的1种或者2种;
- 解题思路
括号嵌套问题。
- Python3代码
# -*- coding:utf-8 -*-
# &Author AnFany
# Lesson 7:Stacks and Queues
# P 7.3 Nesting
def solution(S):
"""
判断字符串是否为正确的嵌套
:param S: 字符串
:return: 是正确的返回1,否则返回0
"""
left_list = []
for i in S:
if i == '(':
left_list.append(1) # 可以添加任何元素,
else:
if len(left_list) == 0:
return 0
else:
left_list.pop(0) # 因为都是小括号,删除列表中的第一个或者最后一个,都是一样的
if len(left_list) != 0:
return 0
else:
return 1
- 结果
点击获得更多编程练习题。欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan,获取更多。
image image