每日一題 42 刪除公共字元

2021-10-05 07:58:38 字數 966 閱讀 7480

輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入」they are students.」和」aeiou」,則刪除之後的第乙個字串變成」thy r stdnts.」

輸入描述:

每個測試輸入包含2個字串

輸出描述:

輸出刪除後的字串

示例1:

輸入

they are students.

aeiou

輸出thy r stdnts.

解題思路:本題如果使用傳統的暴力查詢方式,如判斷第乙個串的字元是否在第二個串中,在再挪動字元刪除這個字元的方式,效率為o(n^2),效率太低。

將第二個字串的字元都對映到乙個hashtable陣列中,用來判斷乙個字元在這個字串。

判斷乙個字元在第二個字串,不使用刪除,這樣效率太低,因為每次刪除都伴隨資料挪動。這裡可以將不在hashtable陣列中的字元新增到乙個新字串,最後返回新字串。

題解**:

#include

#include

using

namespace std;

intmain()

;for

(auto i : s2)

string str;

//這裡最好不要erases (邊遍歷,邊erase,容易出錯)

for(

auto i : s1)

} cout << str << endl;

return0;

}

**生成圖:

每日一題 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z class solution def l...

4 2每日一題 數列分段 二分

p1182 數列分段 section ii 對於給定的乙個長度為n的正整數數列 a a1 n,現要將其分成 mm m leq nm n 段,並要求每段連續,且每段和的最大值最小。關於最大值最小 例如一數列4 2 4 5 1 要分成 3 段。將其如下分段 4 2 4 5 1 第一段和為6,第 22 段...

每日一題 倒置字串

題目描述 將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 示例1輸入 i like be...