資料結構與演算法 字串

2021-09-22 19:14:33 字數 873 閱讀 5656

題型1:如何統計字元中有多少個單詞?

方法1:使用空格作為分隔。如果測出某乙個字元為非空格,而它前面的單詞是空格,則表示「新的單詞開始了」此時單詞數count累加1.如果當前字元為非空格而其前面的字元也是非空格,則意味著仍然是原來那個單詞的繼續,count不應再累加1.

方法2:使用sstream中的isstreamstring實現單詞的分隔,將字串賦值給isstreamstring,以空格將單詞分開。

char string[buffersize];

int count=0,word=0;

while(string[i]!='\0')

i++;

}

題型2:如何將字串逆序

方法1:普通逆序,從尾到頭輸入另一陣列中

方法2:原地逆序,將兩個指標分別指向字串的頭部和尾部,將頭部和尾部使用乙個臨時變數,進行交換,然後頭部指標後移,尾部指標前移。

方法3:不允許使用臨時變數,可以使用異或來將換前後指標指向的字元。

while(p>s)

題型3:如何找出乙個字串中第乙個只出現一次的字元

方法1:使用hash表記錄每個字元出現的次數,以字元作為陣列下標,陣列大小為256.第一遍掃瞄元素將進行字元統計,第二遍從頭到尾找到第乙個計數為1的字元。

題型4:字串的所有子集

參考leetcode:

題型5:求字串的所有排列

參考leetcode:

資料結構與演算法 字串

判斷乙個串是不是回文串,往往要分開編寫,造成 的拖沓 int longestpalindrome const char s,int n return max void longestpalindrome test 上面的迴圈中,對於回文長度本身的奇偶性,我們進行區別處理。這樣有點拖沓。我們根據乙個簡...

資料結構與演算法 字串

生成n對括號的所有合法排列 描述 給定乙個非負整數n,生成n對括號的所有合法排列。解答 該問題解的個數就是卡特蘭數,但是現在不是求個數,而是要將所有合法的括號排列列印出來。該問題和 程式設計之美 的買票找零問題一樣,通過買票找零問題我們可以知道,針對乙個長度為2n的合法排列,第1到2n個位置都滿足如...

C C 資料結構與演算法 字串)

串 string 是有零個或多個字元組成的有限序列,有名叫字串。空格串和空串不一樣,空格串是有內容有長度的,而且可以不止乙個空格。線性表更關注的是單個元素的操作,比如查詢乙個元素,插入或刪除乙個元素,但串中更多的是查詢子串位置 得到指定位置子串 替換子串等操作。adt 串 string data 串...