演算法學習三 句子單詞反轉

2021-06-21 06:29:52 字數 1323 閱讀 9532

題目要求:反轉句子中單詞的順序

題目:輸入乙個英文句子,反轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字元一樣處理。

例如輸入「i am a student.」,則輸出「student. a am i」

此演算法可以結合棧的資料結構實現,分割每個單詞,乙個個放入棧中,然後再乙個個彈出即可。

下面是此演算法的偽**:

void reversesentence(const string &s)

get s's size

define a singlestring to store each word

define a stack to store each single word

for i <- 0 to s.size

if s[i] is space

if the space is last word's end

then push a new word to sentence

reset singlestring

else add char to singlestring

//end for

if last word has not push into sentence

then push it into sentence

while sentence is not empty

output the word and one space

pop one value from sentence

//end while

c++實現

//get s's size

int len = s.size();

//define a singlestring to store each word

string singlestring = "";

//define a stack to store each single word

stacksentence;

//for i <- 0 to s.size

for(int i = 0; i != s.size(); ++i)

}else

}//if last word has not push into sentence

if(singlestring.size() != 0)

//while sentence is not empty

while(!sentence.empty())

cout << endl;

演算法學習(三)

快慢指標 雙指標 兩個指標指向不同元素,從而協同完成任務,主要用於遍歷元素。對撞指標,快慢指標,滑動視窗 對撞指標是指在陣列中,將指向最左側的索引定義為左指標,最右側的定義為右指標,然後從兩頭向中間進行陣列遍歷。leetcode 167 兩數之和 ii 輸入有序陣列 給定乙個已按照 公升序排列 的整...

演算法學習之單鏈表

單鏈表 包含乙個未知型別的資料以及乙個指向下乙個結點的指標 1.初始化單鏈表 建立頭結點,令他的下一結點為空 2.插入元素 遍歷該鍊錶直到到達插入點,建立新結點,載入資料,插入鍊錶 3.輸出單鏈表 遍歷整個鍊錶輸出每個結點的資料 4.輸出單鏈表長度 5.判斷單鏈表是否為空 頭結點的指標是否為空 6....

演算法學習06 單鏈表

乙個單向鍊錶基本由兩個元素組成,即資料字段和指標,而指標通常指向下乙個節點記憶體所在的位址。最後乙個節點沒有其他節點可以連線,因此指標的值為null。建立與遍歷 以動態分配產生鍊錶節點的方式,可以先行定義乙個類資料型別,要有乙個資料字段,接著在類中定義乙個指標變數,其資料型別與此類相同,作用是指向下...