# 第一題(1)'''給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個
整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的yuansu
'''class solution(object
): def two_sum(self, nums, target):
""" :type nums: list[int
] :type target:
int:rtype: list[
int]
"""for i,num in
enumerate(nums):
value = target -num
if value in nums[i+1
:]:
return [i, nums[i+1:].index(value)+i+1
]
return none
自己錯誤的解法,忽視去掉乙個元素後,其相應的下標也變了,**如下
classsolution(object):
deftwo_sum(self, nums, target):
""":type nums: list[int]
:type target: int
:rtype: list[int]
"""for num1 in
nums:
result =
num1_i =nums.index(num1)
nums.remove(num1)
for num2 in
nums:
if num1 + num2 ==target:
num2_i =nums.index(num2)
return
result
return none
第二題(7.整數反轉)
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0
做這個題前,要先知道怎麼反轉字串,此部落格(列出好幾種反轉字串的方法
結題**:
法一:
classsolution(object):
defreverse(self, x):
""":type x: int
:rtype: int
"""#
1 將x轉換成字串並反轉,若有符號,一併反轉了
reverse_str = ''.join(str(x)[::-1])
#2 若x為負數時,去掉負號,並將其轉換成int*-1輸出if'
-'inreverse_str:
res = int(reverse_str[:-1])*-1else:
res =int(reverse_str)
#判斷是否溢位
if res > (2**31-1) or res < (-2)**31:
return
0
return res
法二:思路:(來自leetcode id為 『靈魂畫師牧碼』的分析),主要是判斷溢位部分(leetcode官方判斷溢位的思路也是如此)
本題如果不考慮溢位問題,是非常簡單的。解決溢位問題有兩個思路,第乙個思路是通過字串轉換加try catch的方式來解決,第二個思路就是通過數學計算來解決。
由於字串轉換的效率較低且使用較多庫函式,所以解題方案不考慮該方法,而是通過數學計算來解決。
通過迴圈將數字x的每一位拆開,在計算新值時每一步都判斷是否溢位。
溢位條件有兩個,乙個是大於整數最大值max_value,另乙個是小於整數最小值min_value,設當前計算結果為ans,下一位為pop。
從ans * 10 + pop > max_value這個溢位條件來看
當出現 ans > max_value / 10 且 還有pop需要新增 時,則一定溢位
當出現 ans == max_value / 10 且 pop > 7 時,則一定溢位,7是2^31 - 1的個位數
從ans * 10 + pop < min_value這個溢位條件來看
當出現 ans < min_value / 10 且 還有pop需要新增 時,則一定溢位
當出現 ans == max_value / 10 且 pop < -8 時,則一定溢位,8是-2^31的個位數
以下是自己根據此思路整的python**,有點問題(當為負數時直接返回的是0,得不到正確的結果)
**如下:
class solution(object): def reverse(self, x):
""" :type x: int
:rtype:
int"""
max_value = 2**31-1
min_value = -2**31
res = 0
while x != 0
: pop = x % 10
if res > max_value / 10 and pop != 0 or res == max_value / 10 and pop > 7
:
return
0elif res
< min_value / 10 and pop != 0 or res < min_value / 10 and pop < (-8
):
return
0res = res*10 + x % 10
x /= 10
return res
第三題(9)
判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
法一:將整數轉為字串(簡單粗暴)
class solution(object): def ispalindrome(self, x):
""" :type x: int
:rtype:
bool
"""# 將x反轉為字串
reverse_str = str(x)[::-1
]# 判斷x是否為負數,負數的話反轉後不能轉為int型別
if x < 0 or x % 10 ==0 and x != o:
return
false
else
: reverse_int = int
(reverse_str)
if reverse_int ==x:
return
true
return false
法二(leetcode官方思路)
反轉int數字的一半,效率高點
classsolution(object):
defispalindrome(self, x):
""":type x: int
:rtype: bool
"""if x < 0 or x % 10 == 0 and x != 0:return
false
res =0
while x >res:
x, reverted_num = x // 10, x % 10res = res * 10 +reverted_num
# 若x的位數為奇數時,通過res//10 去掉中間的一位數
return x == res or x == res // 10
DVWA簡單難度
burp抓包 傳送到intruder 猜測使用者名為admin 用字典爆破 得到密碼password 輸入127.0.0.1 ls 輸入etc passwd 得到root x 0 0 root root bin bash daemon x 1 1 daemon usr sbin usr sbin n...
利用Python判斷你的密碼難度等級
密碼是個很私密的東西它一直關聯著一系列的機密事物,二戰中密碼起了很大的作用。在我們生活中尤其是現在我們手機上存在著許多的app是我們生活不可或缺的,在登陸賬號時我們是少不了輸入密碼這一環節,雖然有許多的app可用通過簡訊驗證或者其他方式登入,但是密碼可以是其他人來登入你賬號的重要途徑,密碼越難賬號越...
LeetCode 簡單等級
1.兩數之和 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。nums 2,7,11,15 target 9 for i in range len nu...