力扣题目汇总(反转字符串中的单词,EXCEL表列序号,旋置矩阵)
反转字符串中的单词 III
1.题目描述
-
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"
2.解题思路
把他弄成列表在一个个值用切片进行反转
3.解题
return [ i[::-1] for i in s]
Excel表列序号
1.题目描述
-
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入: "A" 输出: 1
示例 2:
输入: "AB" 输出: 28
示例 3:
输入: "ZY" 输出: 701
2.解题思路
这题目可以看成一个数学题目,每个值就相当于前面那个值加后面的值,其实就是发现规律没啥技巧
3.解题
class Solution:
def titleToNumber(self, s: str) -> int:
count = len(s)
num = 0
words = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
words = ','.join(words)
words_list = words.split(',')
print(words_list)
if len(s) < 2:
return words_list.index(s)+1
else:
for nums in s :
count -= 1
num += (26**count*(words_list.index(nums) + 1))
return num
转置矩阵
1.题目描述
-
给定一个矩阵
A
, 返回A
的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
示例 1:
输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:
输入:[[1,2,3],[4,5,6]] 输出:[[1,4],[2,5],[3,6]]
提示:
1 <= A.length <= 1000
1 <= A[0].length <= 1000
2.解题思路
首先数列的他一个竖着的列表的数量取决于他每个子序列的长度,所有我们用这个生成一个空的列表且列表子列表数量和竖着的列表相同,然后用FOR把内容按竖着加进去。
3.解题
class Solution:
def transpose(self, A: List[List[int]]) -> List[List[int]]:
new_a = []
nums = 0
for a in range(len(A[0])):
new_a.append([])
for b in range(len(A[0])):
for c in range(len(A)):
new_a[nums].append(A[c][b])
if len(new_a[nums]) == len(A):
nums += 1
return new_a