難度等級簡單

2022-09-18 11:39:23 字數 4014 閱讀 4402

# 第一題(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

自己錯誤的解法,忽視去掉乙個元素後,其相應的下標也變了,**如下

class

solution(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

做這個題前,要先知道怎麼反轉字串,此部落格(列出好幾種反轉字串的方法

結題**:

法一:

class

solution(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數字的一半,效率高點

class

solution(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...