欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

左旋轉(zhuǎn)字符串

左旋轉(zhuǎn)字符串_??途W(wǎng)

http://www.fangfengwang8.cn/practice/12d959b108cb42b1ab72cef4d36af5ec?tpId=13&tqId=11196&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

題目描述
匯編語(yǔ)言中有一種移位指令叫做循環(huán)左移(ROL),現(xiàn)在有個(gè)簡(jiǎn)單的任務(wù),就是用字符串模擬這個(gè)指令的運(yùn)算結(jié)果。對(duì)于一個(gè)給定的字符序列S,請(qǐng)你把其循環(huán)左移K位后的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環(huán)左移3位后的結(jié)果,即“XYZdefabc”。是不是很簡(jiǎn)單?OK,搞定它!

思路:這道題考查的核心是靈活利用字符串翻轉(zhuǎn)。假設(shè)字符串a(chǎn)bcdef,n=3,設(shè)X=abc,Y=def,所以字符串可以表示成XY,如題干,問(wèn)如何求得YX。假設(shè)X的翻轉(zhuǎn)為XT,XT=cba,同理YT=fed,那么YX=(XTYT)T,三次翻轉(zhuǎn)后可得結(jié)果。

def Reverse(self, s, begin, end):
    if not s:
        return None
    while begin <= end:
        s[begin], s[end] = s[end], s[begin]
        begin += 1
        end -= 1
    return s
def LeftRotateString(self, s, n):
    if not s:
        return ""
    listS = list(s)
    if n>len(s):
        return self.Reverse(listS,0,len(s)-1)
    else:
        self.Reverse(listS,0,n-1)
        self.Reverse(listS,n,len(s)-1)
        self.Reverse(listS,0,len(s)-1)
    return "".join(listS)
全部評(píng)論
這個(gè)用到了線性代數(shù)中的可逆,AB->BA (A^-1B^-1)^-1=BA; 其中A^-1:為A的逆
1 回復(fù) 分享
發(fā)布于 2020-02-07 16:09
大佬,第五行s[begin],s[end] = s[end],s[begin]好像不可以吧,字符串不能直接按照下標(biāo)修改吧?
點(diǎn)贊 回復(fù) 分享
發(fā)布于 2020-11-20 11:26
大佬,劍指(簡(jiǎn)直)666
點(diǎn)贊 回復(fù) 分享
發(fā)布于 2020-06-18 14:28

相關(guān)推薦

??虸D:561366855:期望薪資多少?難以相信這簡(jiǎn)歷找不到工作。說(shuō)明二本電子信息專(zhuān)業(yè)想對(duì)口就業(yè)非常難。
點(diǎn)贊 評(píng)論 收藏
分享
SadnessAlex:跟三十五歲原則一樣,人太多給這些***慣壞了
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
9
收藏
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)