📅  最后修改于: 2023-12-03 15:09:56.747000             🧑  作者: Mango
这是一道字符串操作的题目。题目要求我们找到字符串中成对出现的字符,并且这些字符都出现在包含“字符串”的每个字符串中。
我们可以遍历字符串,用一个栈来保存左括号,遇到右括号时,弹出栈顶元素。如果栈为空或者栈顶元素不匹配,则返回False。最后,如果栈为空,说明所有左括号都有对应的右括号,返回True。
代码如下:
def is_valid(s: str) -> bool:
stack = []
mapping = {')': '(', '}': '{', ']': '['}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
print(is_valid("()[]{}"))
# output: True
print(is_valid("([)]"))
# output: False
上面是Python的代码,时间复杂度为O(n),空间复杂度为O(n)。
在markdown中,我们可以用三个反引号括起来表示代码块,也可以用一个反引号括起来表示代码。例如:
import re
s = 'the quick brown fox jumps over the lazy dog'
result = re.findall(r'\b\w{5}\b', s)
print(result)
上面的代码表示使用正则表达式从一个字符串中找到所有长度为5的单词,结果为['quick', 'brown', 'jumps']
。
如果我们要在markdown中展示Python的语法高亮,可以在三个反引号后面加上Python,如下所示:
def is_valid(s: str) -> bool:
stack = []
mapping = {')': '(', '}': '{', ']': '['}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
print(is_valid("()[]{}"))
# output: True
print(is_valid("([)]"))
# output: False
最后,我们可以在markdown中用井号表示标题,如下所示:
这是一道字符串操作的题目。题目要求我们找到字符串中成对出现的字符,并且这些字符都出现在包含“字符串”的每个字符串中。
以上就是本题的解法和markdown示例。