2017阿里筆試題string切片問題

2021-08-07 10:13:32 字數 789 閱讀 1738

問題描述:

給定乙個字串str,以及字典dict,在字串中插入空格,使得每個單詞都在dict中,且插入的空格數最少

解題思路:

該題採用遞迴的方法來求解,將str分為兩部分,若第一部分在字典中,則繼續判斷第二部分字串所能插入的最少空格,如此遞迴的處理第二部分,只能將其分為一部分,或者無法分割。

#include 

#include

#include

#include

#include

using namespace std; bool mincut1(string str, const set

&dict, vector

&res) string second = str.substr(i, str.length() - i); vector

tmp; if (mincut1(second, dict, tmp)&&len > tmp.size()) } } if (!r.empty()) return false; } void mincut(const string& str, const set

& dict) int main(int argc, const char * argv) mincut(strs, dict); return 0; }

其實還可以用乙個陣列儲存從後往前最少能分割的數量,這樣,若下次再遍歷到同樣的字串,則不用繼續處理,以空間換時間。

ps:只是隨意寫了一下,並沒有繼續進行優化,至於對錯,也沒驗證,還請各位大神指教

2017阿里前端筆試

1 let obj object.create function foo obj console.log obj foo obj true let obj 1,2,3 function foo val console.log obj foo obj false let obj 1 function ...

阿里筆試題

計算二叉樹每一層的和 24for int i 0 i 29list.add index 30 31int sum 0 32for int i 0 i 35 兩個端點的數,是去除裡面第乙個,或者最後倒數第二個,比較去掉最小的那個 36int max sum math.min list.get 1 li...

阿里筆試題目

題目描述 乙個 的訂單中包含n 10 n 1 種商品a1,a2,an,每種商品數量分別為a1,a2,an個,記做 ak 0 訂單在倉庫生產過程中,倉庫為了提公升作業效率,會提前對熱門組合商品進行預包裝。假設這n個商品有m 9 m 1 個商品組合,每個組合bomk包含a1,a2,an的數量分別為 bk...