程式設計之美 旋轉字串

2022-08-05 10:42:24 字數 689 閱讀 7980

1: 設計乙個演算法,把乙個含有n個元素的陣列迴圈右移k位,要求時間複雜度為o(n),

且只允許使用兩個附加變數。既 abcd1234,右移k=4位,變為1234abcd

#includeusing namespace std;

//---------------------------------------

//方式1,每次右移動1位,時間複雜度為o(m*n)

void rightshift(char *s,int k)

s[0] = tempc; }}

//-----------------------------------------

//方式2:利用求逆

//1、首先分為倆部分,x:abc,y:def;

//2、x->x^t,abc->cba, y->y^t,def->fed。

//3、(x^t,y^t)^t=yx,cbafed->defabc,即整個翻轉。

void reverse(char *s,int begin,int end)

void clearbit(int i)

int test_i(int i)

char s1 = "aabcdefcdefgmlnop";

char s2 = "cdaaefgmnop";

int main()

cout<(a[0])<(a[0])<

程式設計之法 字串旋轉

題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前3個字元 a b 和 c 移到字串的尾部,那麼原字串將程式設計 defabc 解法1 蠻力移位,include include define len a sizeof a sizeof a using ...

字串迴圈移位 程式設計之美3 1

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

程式設計之美 最長有效括號字串

給定字串,僅包含左括號 和右括號 它可能不是括號匹配的,設計演算法,找出最長匹配的括號子串,返回該子串的長度。如 2 4 6 6 given a string containing just the characters and find the length of the longest vali...