輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入」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...