Diretório do artigo
Leetcode 139. Divisão de palavras
Descrição do problema
Dada uma string não vazia s e um wordDict do dicionário que contêm uma lista de palavras não vazias, determine se s pode ser dividido em uma ou mais palavras que aparecem no dicionário por espaços.
Descrição:
- Você pode reutilizar as palavras no dicionário ao dividir.
- Você pode assumir que não há palavras duplicadas no dicionário.
Entrada: s = "leetcode", wordDict = ["leet", "code"]
Saída:true
Relatório de solução de problemas
dp[i]
Indica se s
o 0
primeiro caractere para o i
primeiro caractere na sequência pode ser dividido.
Determinar dp[i]
se dividir a partir i-1
da 0
pesquisa inversa, se houver dp[j]
, pode ser dividida e o primeiro j
personagem para o primeiro i
carácter da personagem Jane composição pode ser encontrado em um dicionário.
Código de implementação
class Solution {
public:
bool wordBreak(string s, vector<string>& wordDict) {
int n=s.size();
set<string>setWords;
for(int i=0;i<wordDict.size();i++){
setWords.insert(wordDict[i]);
}
vector<int>dp(n+1,0);
dp[0]=1;
for(int i=1;i<=n;i++){
for(int j=i-1;j>=0;j--){
if(dp[j]&&setWords.find(s.substr(j,i-j))!=setWords.end()){
dp[i]=1;
break;
}
}
}
return dp[n];
}
};
Referências
[1] Leetcode jumping game
[2] Área de problemas bonheur
Leetcode 55. Jogo de salto
Descrição do problema
Dada uma matriz de números inteiros não negativos, você está inicialmente na primeira posição da matriz.
Cada elemento da matriz representa o comprimento máximo que você pode pular nessa posição.
Determine se você pode alcançar a última posição.
Relatório de solução de problemas
dp[i]
Indica i
se a primeira posição está acessível.
Quando é determinado dp[i]
se acessível a partir i-1
da 0
pesquisa inversa, se houver dp[j]
, e até a suaj+num[j]>=i
Código de implementação
class Solution {
public:
bool canJump(vector<int>& nums) {
int n=nums.size();
if(n==1){
return 1;
}
vector<int>dp(n,0);
dp[0]=1;
for(int i=0;i<n;i++){
for(int j=i-1;j>=0;j--){
if(dp[j]&&j+nums[j]>=i){
dp[i]=1;
break;
}
}
}
return dp[n-1];
}
};