程式設計之美 2 17 字串迴圈移位

2021-08-29 04:35:03 字數 637 閱讀 4532

將字串向右迴圈移動 k 位

s = "abcd123" k = 3

return "123abcd"

將子串 s[0:str.length() - k)] 翻轉,子串s[str.length() - k,str.length()] 翻轉。然後將整個字元翻轉可以到最終結果。

eg:將 abcd123 中的 abcd 和 123 單獨翻轉,得到 dcba321,然後對整個字串進行翻轉,得到 123abcd。

class

solution

return

newstring

(chs);}

public string turnright

(string str,

int k)

}public

class

main

}

生成新 ss = s+s,取ss[str.length() - k:str.length() - k + str.length()]

class

solution

}public

class

main

}

(1 5 2 12)字串迴圈移位 程式設計之美3 1

給定兩個字串s1和s2,要求判定s2能否能被s1做迴圈移位得到的字串包含。例如,s1 aabcd,s2 cdaa,返回true,給定s1 abcd,s2 acbd,返回false。思路1 找出所有迴圈移位,逐個進行字串匹配。n 字串匹配的複雜度。kmp可以做到線性,因此總的複雜度為n 2.思路2 s...

程式設計之美2 17 陣列迴圈移位

string rightshift1 string s,int n,int k return s string rightshift2 string s,int n,int k return s 對於abcd1234,若迴圈右移4位得到的1234abcd,可以看出有兩部分是沒有變的一部分是abcd,...

程式設計之美2 17 陣列迴圈移位

題目描述 設計乙個演算法,把乙個含有n個元素的陣列迴圈右移k位,要求時間複雜度為o n 且只允許使用兩個附加變數,如abcd1234迴圈右移三位,則為 abcd11234 4abcd123 34abcd12 234abcd1 思路一 暴力解法,一步步來,每次迴圈移位一次,移k n次,此時複雜度為o ...