DP 單詞的劃分

2021-10-04 11:42:37 字數 1389 閱讀 7632

題目描述

有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越好。你就是來完成這一劃分工作的。

輸入

第一行,乙個字串。(字串的長度不超過300)

第二行乙個整數n,表示單詞的個數。(n≤100)

第3~n+2行,每行列出乙個單詞。

輸出

乙個整數,表示字串可以被劃分成的最少的單詞數

樣例輸入 copy

realityour

5real

reality

ityour

our

樣例輸出 copy

解題思路:用乙個陣列dp【i】來記錄前 i 長度的母串可以由最少的單詞構成,狀態轉移方程就是:

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 思路 對...