Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    1397 - Find All Good Strings.

    Hard

    Given the strings s1 and s2 of size n and the string evil, return the number of good strings.

    A good string has size n, it is alphabetically greater than or equal to s1, it is alphabetically smaller than or equal to s2, and it does not contain the string evil as a substring. Since the answer can be a huge number, return this modulo <code>10<sup>9</sup> + 7</code>.

    Example 1:

    Input: n = 2, s1 = "aa", s2 = "da", evil = "b"

    Output: 51

    Explanation: There are 25 good strings starting with 'a': "aa","ac","ad",...,"az". Then there are 25 good strings starting with 'c': "ca","cc","cd",...,"cz" and finally there is one good string starting with 'd': "da".

    Example 2:

    Input: n = 8, s1 = "leetcode", s2 = "leetgoes", evil = "leet"

    Output: 0

    Explanation: All strings greater than or equal to s1 and smaller than or equal to s2 start with the prefix "leet", therefore, there is not any good string.

    Example 3:

    Input: n = 2, s1 = "gx", s2 = "gz", evil = "x"

    Output: 2

    Constraints:

    • s1.length == n

    • s2.length == n

    • s1 &lt;= s2

    • 1 &lt;= n &lt;= 500

    • 1 &lt;= evil.length &lt;= 50

    • All strings consist of lowercase English letters.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Integer findGoodStrings(Integer n, String s1, String s2, String evil)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait