Skip to content

Commit e9cbe6e

Browse files
committed
feat: length of last word
1 parent c6b4dda commit e9cbe6e

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

sort.reverse-pairs.py

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
"""
6+
493. 翻转对
7+
https://leetcode-cn.com/problems/reverse-pairs/
8+
给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
9+
你需要返回给定数组中的重要翻转对的数量。
10+
"""
11+
def reversePairs(self, nums: List[int]) -> int:
12+
if len(nums) == 0:
13+
return 0
14+
15+
res = 0
16+
17+
def merge_sort(arr, left, right):
18+
nonlocal res
19+
if left == right:
20+
return
21+
22+
mid = left + (right - left) // 2
23+
merge_sort(arr, left, mid)
24+
merge_sort(arr, mid + 1, right)
25+
26+
# i = left
27+
# j = mid + 1
28+
# while i <= mid and j <= right:
29+
# if arr[i] > 2 * arr[j]:
30+
# res += mid - i + 1
31+
# j += 1
32+
# else:
33+
# i += 1
34+
35+
tmp = [0 for _ in range(right - left + 1)]
36+
i = left
37+
j = mid + 1
38+
idx = 0
39+
while i <= mid and j <= right:
40+
if arr[i] < arr[j]:
41+
tmp[idx] = arr[i]
42+
idx += 1
43+
i += 1
44+
else:
45+
tmp[idx] = arr[j]
46+
idx += 1
47+
j += 1
48+
49+
while i <= mid:
50+
tmp[idx] = arr[i]
51+
idx += 1
52+
i += 1
53+
54+
while j <= right:
55+
tmp[idx] = arr[j]
56+
idx += 1
57+
j += 1
58+
59+
for k in range(left, right + 1):
60+
arr[k] = tmp[k - left]
61+
62+
63+
merge_sort(nums, 0, len(nums) - 1)
64+
return res
65+
66+
67+
so = Solution()
68+
print(so.reversePairs([2,4,3,5,1]))

str.length-of-last-word.py

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
"""
3+
58. 最后一个单词的长度
4+
https://leetcode-cn.com/problems/length-of-last-word/
5+
给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
6+
如果不存在最后一个单词,请返回 0 。
7+
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
8+
"""
9+
def lengthOfLastWord(self, s: str) -> int:
10+
return len(s.strip().split(' ')[-1])
11+
12+
13+
so = Solution()
14+
print(so.lengthOfLastWord('Hello World'))

str.to-lower-case.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
"""
3+
709. 转换成小写字母
4+
https://leetcode-cn.com/problems/to-lower-case/
5+
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。
6+
"""
7+
def toLowerCase(self, str: str) -> str:
8+
if not str or len(str) == 0:
9+
return str
10+
11+
res = []
12+
for i in str:
13+
if 65 <= ord(i) <= 90:
14+
res.append(chr(ord(i) + 32))
15+
else:
16+
res.append(i)
17+
18+
return ''.join(res)
19+
20+
21+
so = Solution()
22+
print(so.toLowerCase('Hello'))

0 commit comments

Comments
 (0)