摘要:思路先用將字符串分割,再遍歷,將字符串內(nèi)每個(gè)單詞進(jìn)行翻轉(zhuǎn)代碼題意給定一個(gè)字符串,將字符串按照翻轉(zhuǎn),不翻轉(zhuǎn)的規(guī)則進(jìn)行處理。思路先將字符串分段,然后再根據(jù)段落進(jìn)行處理最后將字符串輸出。
344 Reverse String
題意:給出一個(gè)字符串對(duì)字符串進(jìn)行翻轉(zhuǎn)(reverse)
思路:直接使用切片函數(shù)進(jìn)行翻轉(zhuǎn)(網(wǎng)上看到的,具體怎么使用有點(diǎn)迷)[::-1]
代碼:`class Solution(object):
def reverseString(self, s): return s[::-1]`
557 Reverse Words in a String III
題意,給出一句話,將這句話里面每個(gè)單詞的字母順序改變,但是單詞順序不變輸出。
思路:先用split()將字符串分割,再遍歷,將字符串內(nèi)每個(gè)單詞進(jìn)行翻轉(zhuǎn)
代碼:`class Solution(object):
def reverseWords(self, s): l=[] s=s.split() for i in s: l.append(i[::-1]) return " ".join(l)`
541 Reverse String II
題意:給定一個(gè)字符串,將字符串按照nk翻轉(zhuǎn),2n*k不翻轉(zhuǎn)的規(guī)則進(jìn)行處理。
思路:先將字符串分段,然后再根據(jù)段落進(jìn)行處理最后將字符串輸出。
代碼:`class Solution(object):
def reverseStr(self, s, k): al=len(s)//k+1 s=list(s) last=[] returnl=[] for i in range(1,al+1): if i<=al-1: if i%2==1: last.append(s[(i-1)*k:i*k][::-1]) elif i%2==0: last.append(s[(i-1)*k:i*k]) elif i>al-1: if i%2==1: last.append(s[(i-1)*k:][::-1]) elif i%2==0: last.append(s[(i-1)*k:]) for j in last: for k in j: returnl.append(k) return "".join(returnl)`
258 Add Digits
題意:給定一個(gè)多位整數(shù),將整數(shù)每位數(shù)字重復(fù)相加直到結(jié)果為個(gè)位數(shù)
思路:給定一個(gè)死循環(huán),在里面不斷求和即可。
代碼:`class Solution(object):
def addDigits(self, num): while 1: if num<10: return num if num>=10: result=0 while num!=0: result += num%10 num//=10 num=result `
202 Happy Number
題意:給定一個(gè)數(shù),使這個(gè)數(shù)各位平方相加,如果最后的值是1則返回true,如果陷入死循環(huán)則返回false
思路:先給定一個(gè)死循環(huán),然后先判斷是否是1再判斷是否是之前出現(xiàn)過(guò)的數(shù),然后計(jì)算
代碼:class Solution(object):
def isHappy(self, n): numlist=[] result=0 while 1: if n==1: return 1==1 for i in numlist: if n==i: return 1==2 numlist.append(n) while n!=0: result+=(n%10)**2 n//=10 n=result result=0
263 Ugly Number
題意:給定一個(gè)數(shù),如果這個(gè)數(shù)不被2 3 5且不為1則這個(gè)數(shù)為丑陋數(shù)(ugly number)
思路:死循環(huán)分別除1,先檢測(cè),如果數(shù)為0返回false
代碼:
class Solution(object):
def isUgly(self, num): while 1: if num==0: return 1==2 if num%2==0: num/=2 elif num%3==0: num/=3 elif num%5==0: num/=5 elif num==1: return 1==1 else: return 1==2
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40888.html
摘要:最近時(shí)間準(zhǔn)備面試,開(kāi)始在上刷題了。思路將兩個(gè)數(shù)用轉(zhuǎn)換為二進(jìn)制需要去除前面的,因?yàn)槲粩?shù)不同所以需要在前面補(bǔ)充一定位數(shù)的,然后將兩個(gè)字符串遍歷就可以直接得到漢明距離代碼 最近時(shí)間準(zhǔn)備面試,開(kāi)始在leetcode上刷題了。于是在segmentfault上寫(xiě)點(diǎn)東西來(lái)記錄下。可能會(huì)有各種弱智情況,望指出。 Array Partition I題意:這個(gè)題目看原題實(shí)在沒(méi)有看懂,在網(wǎng)上找的翻譯,大致...
摘要:題意給出一串二進(jìn)制數(shù)組,求數(shù)組中最長(zhǎng)的連續(xù)的個(gè)數(shù)思路遍歷數(shù)組判斷,然后將值添加到長(zhǎng)度保存數(shù)組中,取保存數(shù)組最大值。本題要考慮輸入的數(shù)組為的狀況。代碼題意給出一個(gè),從里面獲取兩個(gè)數(shù)。 485 Max Consecutive Ones題意:給出一串二進(jìn)制數(shù)組,求數(shù)組中最長(zhǎng)的連續(xù)1的個(gè)數(shù)思路:遍歷數(shù)組判斷,然后將值添加到長(zhǎng)度保存數(shù)組中,取保存數(shù)組最大值。本題要考慮輸入的數(shù)組為[0],[1]的...
摘要:現(xiàn)在發(fā)出來(lái)的版本,我重新使用了語(yǔ)言實(shí)現(xiàn)。其實(shí)我之前介紹的老師課程也大量參考和使用算法這本書(shū)上的思路和例題??催@本書(shū)主要是讓我覺(jué)得算法可以以比較輕松的方式入門(mén)。劍指這本書(shū)主要用于準(zhǔn)備算法面試,在網(wǎng)絡(luò)上備受好評(píng)。 我是一個(gè)半路出家的程序員,在我剛開(kāi)始從事編碼工作的頭幾年,我沒(méi)有接觸過(guò)算法和數(shù)據(jù)結(jié)構(gòu),覺(jué)得它們是只會(huì)在我找工作的時(shí)候用得到的知識(shí)。盡管有很多人跟我說(shuō)過(guò)算法和數(shù)據(jù)結(jié)構(gòu)無(wú)比重要,我也...
摘要:技能點(diǎn)中結(jié)構(gòu)知識(shí)點(diǎn)聲明語(yǔ)句添加內(nèi)容鑒定存在本例是把作為找到下標(biāo)根據(jù)返回下標(biāo)返回?cái)?shù)組最終代碼建立在哈希表中遍歷每個(gè)元素,找到可能與之匹配成的下標(biāo) 問(wèn)題: 給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的兩個(gè)下標(biāo)。你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。 思路 首先遍歷一次整數(shù)數(shù)組,將數(shù)組下標(biāo)和值建立哈希表,再?gòu)?..
閱讀 1714·2021-11-02 14:47
閱讀 3661·2019-08-30 15:44
閱讀 1350·2019-08-29 16:42
閱讀 1743·2019-08-26 13:53
閱讀 945·2019-08-26 10:41
閱讀 3476·2019-08-23 17:10
閱讀 615·2019-08-23 14:24
閱讀 1729·2019-08-23 11:59