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...