java.lang.Object
g2701_2800.s2781_length_of_the_longest_valid_substring.Solution

public class Solution extends java.lang.Object
2781 - Length of the Longest Valid Substring.

Hard

You are given a string word and an array of strings forbidden.

A string is called valid if none of its substrings are present in forbidden.

Return the length of the longest valid substring of the string word.

A substring is a contiguous sequence of characters in a string, possibly empty.

Example 1:

Input: word = “cbaaaabc”, forbidden = [“aaa”,“cb”]

Output: 4

Explanation:

There are 9 valid substrings in word: “c”, “b”, “a”, “ba”, “aa”, “bc”, “baa”, “aab”, “ab”, "abc"and “aabc”. The length of the longest valid substring is 4.

It can be shown that all other substrings contain either “aaa” or “cb” as a substring.

Example 2:

Input: word = “leetcode”, forbidden = [“de”,“le”,“e”]

Output: 4

Explanation:

There are 11 valid substrings in word: “l”, “t”, “c”, “o”, “d”, “tc”, “co”, “od”, “tco”, “cod”, and “tcod”. The length of the longest valid substring is 4.

It can be shown that all other substrings contain either “de”, “le”, or “e” as a substring.

Constraints:

  • 1 <= word.length <= 105
  • word consists only of lowercase English letters.
  • 1 <= forbidden.length <= 105
  • 1 <= forbidden[i].length <= 10
  • forbidden[i] consists only of lowercase English letters.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    longestValidSubstring(java.lang.String word, java.util.List<java.lang.String> forbidden)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • longestValidSubstring

      public int longestValidSubstring(java.lang.String word, java.util.List<java.lang.String> forbidden)