題目描述
有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越好。你就是來完成這一劃分工作的。輸入
第一行,乙個字串。(字串的長度不超過300)輸出第二行乙個整數n,表示單詞的個數。(n≤100)
第3~n+2行,每行列出乙個單詞。
乙個整數,表示字串可以被劃分成的最少的單詞數樣例輸入 copy
realityour樣例輸出 copy 解題思路:用乙個陣列dp【i】來記錄前 i 長度的母串可以由最少的單詞構成,狀態轉移方程就是:5real
reality
ityour
our
dp【 i 】=min(dp【i】,dp【i - a【j】.size()】+1);具體見**,**中也做了解釋;
ac**:
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int n =
1010011
;const
int inf =
0x3f3f3f3f
;string a[n]
,str;
int dp[n]
;//bool check(int m, int j,int n)
//// return true;
//}int
main()
memset
(dp, inf,
sizeof
(dp));
dp[0]
=0;for
(i =
0;i < len;i++)}
}}/*for (i = 1;i <= len;i++)
*/cout << dp[len]
<< endl;
return0;
}
單詞的劃分
單詞的劃分 time limit 1s memory limit 1000k total submit 2558 accepted 1134 有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越...
單詞的劃分
有乙個很長的由小寫字母組成的字串。為了便於對這個字串進行分析,需要將它劃分成若干部分,每部分稱為乙個單詞。出於減少分析量的目的,希望劃分出的單詞數越少越好。第1行1個字串,長度不超過100。第2行1個整數n,表示單詞的個數,n 100。第3 n 2行,每行列出1個單詞。一行乙個正整數,表示字串可以被...
Leetcode map dfs 單詞劃分
給定乙個字串s和一組單詞dict,在s中新增空格將s變成乙個句子,使得句子中的每乙個單詞都是dict中的單詞 返回所有可能的結果 例如 給定的字串s catsanddog dict cat cats and sand dog 返回的結果為 cats and dog cat sand dog 思路 對...