-
实例要求:
-
1、给定字符串以及字符串列表作为字典;
-
2、判断是否可以利用字典中出现的单词拼接出字符串;
-
3、不要求字典中出现的单词全部都使用;
-
4、字典中的单词可以重复使用;
-
实例分析:
-
1、初始化数组
a[0] = true
,表示空字符串
; -
2、找分割点,即
int k = i - len
; -
3、判断是否满足匹配条件,即
a[k] && !strncmp(s+k,wordDict[j],len)
; -
4、返回
布尔类型
的数组变量,即a[n]
; -
相关案例:
-
示例代码:
bool wordBreak(char* s, char** wordDict, int wordDictSize) {
int n = strlen(s);
bool a[n+1];
memset(a,false,sizeof(a));
a[0] = true; //初始化,表示空字符串
for(int i = 1;i <= n; i++){
for(int j = 0; j < wordDictSize; j++){
int len = strlen(wordDict[j]);
int k = i - len; //找分割点
if(k < 0)
{
continue;
}
if(a[k] && !strncmp(s+k,wordDict[j],len))
{
a[i] = true;
break;
}
}
}
return a[n];
}
- 运行结果: