xiangqi 寫道
字串比如「ad2 lsdkf, lksdjf. sdkfj」倒序排列"sdkfj lksdjf. lsdkf, ad2" 每個單詞是空格分開,標點符號當作字母,不能用string的自帶的一些方法,比如indexof,trim,split等方法。
大概的偽碼,字串大的話可以用 stringbuffer
stack t;
string s;
for char c : origstring
s += c;
} t.push(s);
string deststring;
while(string str = t.pop() != null)
else
}pnewstr[len] = '\0';
strcpy(s,pnewstr);
free(pnewstr);
}int main()
棧的方法
xiangqi 寫道
字串比如「ad2 lsdkf, lksdjf. sdkfj」倒序排列"sdkfj lksdjf. lsdkf, ad2" 每個單詞是空格分開,標點符號當作字母,不能用string的自帶的一些方法,比如indexof,trim,split等方法。
大概的偽碼,字串大的話可以用 stringbuffer
stack t;
string s;
for char c : origstring
s += c;
} t.push(s);
string deststring;
while(string str = t.pop() != null)
遞迴方式
struct link_node *link_convert(struct link_node *pre_node, struct link_node *cur_node)
建議寫變數名,函式名的時候根據設計的**的功能來寫,
別人看**的時候看定義的名字就知道想實現什麼功能,
「見名知義」,有利於**的可讀性和維護性。
在main()函式裡呼叫的時候是這樣link_convert(null, pnode),確保第乙個引數為null。你自己想想吧,遞迴鍊錶轉置很簡單的。
不知道你是需要用stl來寫還是類似c的寫法,給個簡單的例子吧
#include "stdafx.h"
#include "malloc.h"
#include "ostream.h"
typedef struct _node
node;
node * initlist()
return phead;
}//返回尾節點
node * revert1(node * phead)
return pfather;
}//返回尾節點
node * revert2(node * phead, node * pfather = null)
void printnode(node * pnode)
}int main(int argc, char* argv)
revert1是迭代,revert2遞迴
演算法練習 反轉字串
先看看原題 編寫乙個函式,其作用是將輸入的字串反轉過來。示例 1 輸入 hello 輸出 olleh 示例 2 輸入 a man,a plan,a canal panama 輸出 amanap lanac a nalp a nam a 反向遍歷一遍字串中的所有字元,放在乙個陣列裡面,然後再遍歷一遍陣...
演算法探索 反轉字串
編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 char 的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。示例 1 輸入 h e l l o 輸出 o l l e...
演算法 反轉字串與反轉單詞
題目 將字串內容進行倒置,比如 i like beijing.經過函式後變為 gnijied ekil i。解題思路 首先題目說的很明確,就是反轉字串,不是列印,也不是建立乙個新的字串,而是改變原資料,最簡單的思路就是將第乙個字元和最後乙個交換,第二個和倒數第二個交換,依次迴圈,函式可以返回乙個標誌...