力扣題目解答自我總結(二)
阿新 • • 發佈:2019-05-16
ever 重復 one 使用 所有 列表 obj true bbbb 的二維矩陣表示一個圖像。
力扣題目解答自我總結(二)
一.回文數
1.題目描述
判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數。
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個回文數。
2.解答
class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ if str(x)[::-1] == str(x)[:]: #用切片工具完成字符串的翻轉 return True else: return False
二.寶石和石頭
1.題目描述
給定字符串J
代表石頭中寶石的類型,和字符串 S
代表你擁有的石頭。 S
中每個字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。
J
中的字母不重復,J
和 S
中的所有字符都是字母。字母區分大小寫,因此"a"
和"A"
是不同類型的石頭。
示例 1:
輸入: J = "aA", S = "aAAbbbb"
輸出: 3
示例 2:
輸入: J = "z", S = "ZZ"
輸出: 0
註意:
S
和J
最多含有50個字母。J
中的字符不重復。
2.解答
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
return sum(S.count(i) for i in J) #for 循環的一種寫法
#可以吧該函數寫成這樣
num = 0
for i in J:
num_1 = S.count(i)
num += num_1
return num
三.旋轉圖像
1.題目描述
給定一個 n × n
將圖像順時針旋轉 90 度。
說明:
你必須在原地旋轉圖像,這意味著你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。
示例 1:
給定 matrix =
[
[1,2,3],
[4,5,6],
[7,8,9]
],
原地旋轉輸入矩陣,使其變為:
[
[7,4,1],
[8,5,2],
[9,6,3]
]
示例 2:
給定 matrix =
[
[ 5, 1, 9,11],
[ 2, 4, 8,10],
[13, 3, 6, 7],
[15,14,12,16]
],
原地旋轉輸入矩陣,使其變為:
[
[15,13, 2, 5],
[14, 3, 4, 1],
[12, 6, 8, 9],
[16, 7,10,11]
]
2.解答
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
import copy
new_list = []
time = 0
conter = 0
matrix.reverse()
matrix_1 = copy.copy(matrix)
print(matrix)
if len(matrix) != 0:
for a in range(len(matrix)):
matrix[a] = []
while len(matrix) > len(matrix_1[0]):
matrix.pop()
while len (matrix) < len(matrix_1[0]):
matrix.append([])
for b in range(len(matrix_1[0])):
for c in range(len(matrix_1)):
if time != len(matrix_1):
time += 1
matrix[conter].append(matrix_1[c][b])
elif time == len(matrix_1):
time = 1
conter += 1
matrix[conter].append(matrix_1[c][b])
#這是我的思路比較low,先水平翻轉,再按照子列表的長度,把他變成有擁有子列表長度一樣的空的列表,再裏面填寫值進去,寫完了頭有點昏,等下次有空再優化下代碼
如果你有更加吊炸天的解題方法留言,讓我這渣渣學學
力扣題目解答自我總結(二)