给你一个字符串s和一个字符串列表worddict作为字典c语言的简单解答
时间: 2024-01-06 11:05:51 浏览: 129
C语言字符串函数大集
给定一个字符串s和一个字符串列表worddict作为字典,编写一个函数来判断s是否可以被空格拆分为一个或多个在字典中出现的单词。可以假设字典中没有重复的单词。
解法如下:
1. 遍历字符串s,将其分为两部分,前半部分为s的子串,后半部分为剩余部分。
2. 如果前半部分在字典中出现,则递归判断剩余部分是否可以被拆分为字典中的单词。
3. 如果前半部分不在字典中出现,则继续遍历s,将其分为两部分,重复步骤2。
代码如下:
bool wordBreak(char *s, char **wordDict, int wordDictSize) {
int len = strlen(s);
if (len == 0) return true;
for (int i = 1; i <= len; i++) {
if (isWord(s, i, wordDict, wordDictSize) && wordBreak(s + i, wordDict, wordDictSize)) {
return true;
}
}
return false;
}
bool isWord(char *s, int len, char **wordDict, int wordDictSize) {
for (int i = 0; i < wordDictSize; i++) {
if (strlen(wordDict[i]) == len && strncmp(s, wordDict[i], len) == 0) {
return true;
}
}
return false;
}
阅读全文