字符移動(dòng)函數(shù)題目及答案_第1頁
字符移動(dòng)函數(shù)題目及答案_第2頁
字符移動(dòng)函數(shù)題目及答案_第3頁
字符移動(dòng)函數(shù)題目及答案_第4頁
字符移動(dòng)函數(shù)題目及答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

字符移動(dòng)函數(shù)題目及答案字符移動(dòng)函數(shù)是一種常見的編程任務(wù),用于在字符串中移動(dòng)字符的位置。以下是一些關(guān)于字符移動(dòng)函數(shù)的題目及答案。題目1:字符串反轉(zhuǎn)題目描述:編寫一個(gè)函數(shù),實(shí)現(xiàn)字符串的反轉(zhuǎn)。輸入:一個(gè)字符串`s`。輸出:反轉(zhuǎn)后的字符串。示例:輸入:`"hello"`輸出:`"olleh"`答案:```pythondefreverse_string(s):returns[::-1]測(cè)試print(reverse_string("hello"))輸出:"olleh"```題目2:旋轉(zhuǎn)字符串題目描述:給定一個(gè)字符串`s`和一個(gè)整數(shù)`k`,請(qǐng)將字符串`s`向右旋轉(zhuǎn)`k`個(gè)位置。輸入:字符串`s`和整數(shù)`k`。輸出:旋轉(zhuǎn)后的字符串。示例:輸入:`s="hello"`,`k=2`輸出:`"llohe"`答案:```pythondefrotate_string(s,k):n=len(s)k=k%n防止k大于字符串長(zhǎng)度returns[-k:]+s[:-k]測(cè)試print(rotate_string("hello",2))輸出:"llohe"```題目3:字符串的K個(gè)字符題目描述:給定兩個(gè)字符串`s1`和`s2`,以及一個(gè)整數(shù)`k`,從`s1`中找到`k`個(gè)字符,使得這些字符與`s2`中的字符不重復(fù),返回這些字符。輸入:字符串`s1`和`s2`,整數(shù)`k`。輸出:從`s1`中找到的`k`個(gè)不重復(fù)字符。示例:輸入:`s1="abcde"`,`s2="aeee"`,`k=2`輸出:`"bc"`答案:```pythondeffind_kth_non_duplicated(s1,s2,k):fromcollectionsimportCountercounter=Counter(s2)result=[]forcharins1:ifcharnotincounterorcounter[char]==0:result.append(char)counter[char]=counter.get(char,0)-1iflen(result)==k:return"".join(result)測(cè)試print(find_kth_non_duplicated("abcde","aeee",2))輸出:"bc"```題目4:最小窗口子串題目描述:給定兩個(gè)字符串`s`和`t`,返回`s`中涵蓋`t`所有字符的最小子串。輸入:字符串`s`和`t`。輸出:`s`中的最小窗口子串。示例:輸入:`s="ADOBECODEBANC"`,`t="ABC"`輸出:`"BANC"`答案:```pythondefmin_window(s,t):fromcollectionsimportdefaultdictifnotsornott:return""counter_t=defaultdict(int)forcharint:counter_t[char]+=1required=len(counter_t)counter_s=defaultdict(int)left,right,count,min_len=0,0,0,float("inf")min_window=""whileright<len(s):char=s[right]counter_s[char]+=1ifcharincounter_tandcounter_s[char]==counter_t[char]:count+=1whilecount==requiredandleft<=right:ifright-left+1<min_len:min_len=right-left+1min_window=s[left:right+1]char=s[left]counter_s[char]-=1ifcharincounter_tandcounter_s[char]<counter_t[char]:count-=1left+=1right+=1returnmin_window測(cè)試print(min_window("ADOBECODEBANC","ABC"))輸出:"BANC"```題目5:字符串的排列題目描述:給定兩個(gè)字符串`s1`和`s2`,判斷`s2`是否包含`s1`的排列。輸入:字符串`s1`和`s2`。輸出:如果`s2`包含`s1`的排列,返回`True`;否則返回`False`。示例:輸入:`s1="ab"`,`s2="eidbaooo"`輸出:`True`答案:```pythondefcheck_inclusion(s1,s2):fromcollectionsimportCounteriflen(s2)<len(s1):returnFalsecount_s1=Counter(s1)count_s2=Counter(s2[:len(s1)])ifcount_s1==count_s2:returnTrueforiinrange(len(s1),len(s2)):out_char=s2[i-len(s1)]in_char=s2[i]count_s2[out_char]-=1ifcount_s2[out_char]==0:delcount_s2[out_char]count_s2[in_char]+=1ifcount_s1==count_s2:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論