//1.實現乙個函式,可以左旋字串中的k個字元。
//abcd左旋乙個字元得到bcda。
//abcd左旋兩個字元得到cdab。
//分析:將abcd左移4個字元得到abcd,所以左移週期為4,所以有效的左旋次數為:count%strlen(str)
//**1:常規方法,讓a保持不動,bcd移位,得到bcda;呼叫bcda,讓b保持不動,cda移位,得到cdab;···
#include #include #include #pragma warning(disable:4996)
static leftmovecore(char *str, int len)
}int main()
//**2 按左旋次數將字串分為兩部分,並對其分別進行區域性逆置,最後全體逆置。
//abcd1234 左移3個字元
//abc d1234 (0 str+count-1)
//cba 4321d (str+count str+len-1)
//d1234abc
#include #include #include #pragma warning(disable:4996)
static void reversestr(char *start, char *end)
}void leftmove(char *str, int len, int count)
int main()
//**3 將字串拼接到自身後,左旋n位,從n+1位開始往後讀取字串的總數字,即可得到目標字串。
//abcd1234->abcd1234abcd1234
#include #include #include #pragma warning(disable:4996)
void leftmove(char *str, int len, int count)
int main()
//2.判斷乙個字串是否為另乙個字串旋轉之後的字串。
//例:給定s1=aabcd和s2=bcdaa,返回1;給定s1=abcd和s2=abcd,返回-1.
//分析:
//法一:乙個字串不動,將另乙個字串旋轉一次與其比較一次,依次迴圈,若此過程中比較相等,則返回1;否則,返回-1.
//法二:將某一字串自身拼接到自己後面,再利用strstr()在自身中找所需的字串。
//str="abcd1234"
//substr="4abcd123"
#include #include #include int findleftmove(char* str, char* substr)
int newsize = 2 * strlen + 1;
char* mem = (char *)malloc(sizeof(char)*newsize);
strcpy(mem, str);
strcat(mem, str);
if (strstr(mem, substr))//在men字串中查詢substr字串
free(mem);
return -1;
}int main()
兩道簡單的題目
第一次發表文章,就發表兩到簡單點的題目好了 第一道題目是這樣的 現在有乙個整數的陣列,然後給定乙個目標數,我們要做的是找出陣列中唯一存在的兩個不同的數,其相加能夠得到這個目標數,然後返回這兩個數的下標比如 given nums 2,7,11,15 target 9,because nums 0 nu...
今晚的兩道 bc
第一道題 beautiful palindrome number 簡單組合計數問題,手算打表就好 大概十五分鐘左右搞定 第一次 提交竟然 wa了一次 有乙個小小的坑在那。author jusonalien email jusonalien qq.com school south china norm...
關於fork有意思的兩道題目
include include include intmain 這道問題並不難,最快的想法就是2 4 8 16 32,因為第一層的printf會有兩個程序列印,第二層會增加到4個,以此往下,就得出62行。include intmain 讓我們仍然採用上題的演算法,使用乙個佇列 首先,將主程序產生子程...