< Previous
Next >
We define the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz", so s will look like this:
"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
Given a string p, return the number of unique non-empty substrings of p are present in s.
Example 1:
Input: p = "a"
Output: 1
Explanation: Only the substring "a" of p is in s.
Example 2:
Input: p = "cac"
Output: 2
Explanation: There are two substrings ("a", "c") of p in s.
Example 3:
Input: p = "zab"
Output: 6
Explanation: There are six substrings ("z", "a", "b", "za", "ab", and "zab") of p in s.
Constraints:
1 <= p.length <= 105
p consists of lowercase English letters.
[String]
[Dynamic Programming]
Hints
Hint 1
One possible solution might be to consider allocating an array size of 26 for each character in the alphabet. (Credits to @r2ysxu)