给你一个字符串 word 和一个字符串数组 forbidden 。 如果一个字符串不包含 forbidden 中的任何字符串,我们称这个字符串是 合法 的。 请你返回字符串 word 的一个 最长合法子字符串 的长度。
时间: 2024-04-21 19:22:39 浏览: 37
要求返回字符串 word 的最长合法子字符串的长度,可以使用字符串的遍历和判断操作来解决。
首先,我们初始化一个变量maxLength为0,用于记录最长合法子字符串的长度。
然后,我们从字符串 word 的第一个字符开始遍历,每次遍历到一个字符时,检查以该字符开头的子串是否是合法的。如果是合法的,则更新maxLength为当前子串的长度。
具体的判断合法逻辑如下:对于每个字符,在 forbidden 数组中查找是否存在以该字符开头的字符串。如果找到了,则说明当前子串不是合法的,直接跳出循环,继续遍历下一个字符。如果遍历完整个 forbidden 数组都没有找到以该字符开头的字符串,则说明当前子串是合法的。
最后,返回 maxLength 即为所求的最长合法子字符串的长度。
以下是使用Python实现的代码示例:
```python
def isLegal(substring, forbidden):
for word in forbidden:
if substring.startswith(word):
return False
return True
def maxLengthOfLegalSubstring(word, forbidden):
maxLength = 0
n = len(word)
for i in range(n):
for j in range(i+1, n+1):
substring = word[i:j]
if isLegal(substring, forbidden):
maxLength = max(maxLength, len(substring))
else:
break
return maxLength
word = "abpcleetcode"
forbidden = ["ale","apple","monkey","plea"]
print(maxLengthOfLegalSubstring(word, forbidden))
```
输出为6,表示最长合法子字符串的长度为6。
希望能帮助到你!如果还有其他问题,请随时提问。
阅读全文