面試題42 左旋轉字串

2021-09-30 10:38:57 字數 1007 閱讀 7981

/*題目:定義乙個函式實現字串左旋轉操作的功能。字串的左旋轉操作就是把字串前面的若干個字元轉移到字串的

尾部。比如輸入字串"abcdefg"和2,該函式將返回左旋轉2位得到的結果"cdefgab"。*/

#include #include using namespace std;

//翻轉字串

void reverse(char *pstart, char *pend)

}//翻轉英文句子

char *reversesentence(char *pdata)

else if(*pend == ' ' || *pend == '\0')

else

}return pdata;

}//左旋字串

char *leftrotatestring(char *pstr, int n)

}return pstr;

}//*************************測試**********************=

void test(char *testname, char *input, int n, char *expectedresult)

//********************====測試用例********************===

//功能測試

void test1()

//左旋轉乙個字元

void test2()

//左旋轉n - 1個字元(字串長度為n)

void test3()

//左旋轉0個字元

void test4()

//特殊輸入,輸入空字串

void test5()

//左旋轉n個字元(字串長度為n)

void test6()

//左旋轉n + 1個字元(字串長度為n)

void test7()

int main()

面試題42 翻轉單詞順序VS左旋轉字串

題目一 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 演算法思路 首先將整個字串翻轉得到.tneduts a ma i,然後根據空格將每個單...

面試題42 題目2 字串左旋轉

面試題42 題目2 字串左旋轉 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,...

字串面試題系列之三 左旋轉字串

在這裡說明一下,本系列文章所提供的演算法均在federa 8 系統上編譯通過並且編譯通過。如果有問題或者紕漏或者有好的建議更或者有更好的演算法,請不吝賜教。言歸正傳,這是字串的第三個演算法叫左旋字串。左旋字串,咋一看也許不 太明白是什麼意思。其實有點類似於迴圈左移的概念。字串的第乙個字元移動到字串末...