LeetCode刷题笔记3
发表于|更新于
|字数总计:742|阅读时长:3分钟
LeetCode 剑指Offer
剑指 Offer 05. 替换空格
题目描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
实例:
1
2输入:head = [1,3,2]
输出:[2,3,1]限制
- 0 <= 链表长度 <= 10000
解题思路
解题思路:
- 申请辅助空间。
- 调用原生API。
实现代码
Python解法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 申请辅助空间
class Solution:
def replaceSpace(self, s: str) -> str:
arr = []
for sub in s:
if sub == " ":
arr.append('%20')
else:
arr.append(sub)
res = ''
for item in arr:
res += item
return res
# 调用原生API
class Solution:
def replaceSpace(self, s: str) -> str:
return s.replace(" ", "%20")JS/TS解法
1
2
3
4
5// 调用原生API replace
// JS/TS Replace 与 Python Replace不同,JS Replace只替换第一个,需要用正则表达式。
function replaceSpace(s: string): string {
return s.replace(/\s/g, "%20");
};
剑指 Offer 58 - II. 左旋转字符串
题目描述
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串”abcdefg”和数字2,该函数将返回左旋转两位得到的结果”cdefgab”
实例:
1
2
3
4
5输入: s = "abcdefg", k = 2
输出: "cdefgab"
输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"限制
1 <= k < s.length <= 10000
解题思路
解题思路:
- 切片/调用原生API;
- 若不允许切片则创建辅助空间。
实现代码
- Python解法
1 |
|
- Js/Ts解法
1 |
|
🔥 LeetCode 热题 HOT 100
20. 有效的括号
题目描述
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串s
,判断字符串是否有效。
有效字符串需满足:
1. 左括号必须用相同类型的右括号闭合。
2. 左括号必须以正确的顺序闭合。
3. 每个右括号都有一个对应的相同类型的左括号
实例
1
2
3
4
5
6
7
8输入:s = "()"
输出:true
输入:s = "()[]{}"
输出:true
输入:s = "(]"
输出:false提示
1 <= s.length <= 104
s
仅由括号'()[]{}'
组成
解题思路
解题思路
使用辅助栈,字符串长度为奇数则
False
,否则遍历字符串,当前为左括号的时候入栈,当右括号时,判断栈顶元素是否匹配括号,匹配则pop
栈顶元素,否则,return False
;最后判断栈是否还存有元素(即是否有左括号尚未被匹配),有则False
。
实现代码
1 |
|