/*題目:定義乙個函式實現字串左旋轉操作的功能。字串的左旋轉操作就是把字串前面的若干個字元轉移到字串的
尾部。比如輸入字串"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 系統上編譯通過並且編譯通過。如果有問題或者紕漏或者有好的建議更或者有更好的演算法,請不吝賜教。言歸正傳,這是字串的第三個演算法叫左旋字串。左旋字串,咋一看也許不 太明白是什麼意思。其實有點類似於迴圈左移的概念。字串的第乙個字元移動到字串末...