total-characters-in-string-after-transformations-ii
You are given a string s consisting of lowercase English letters, an integer t representing the number of transformations to perform, and an array nums of size 26. In one transformation, every character in s is replaced according to the following rules:
- Replace
s[i]with the nextnums[s[i] - 'a']consecutive characters in the alphabet. For example, ifs[i] = 'a'andnums[0] = 3, the character'a'transforms into the next 3 consecutive characters ahead of it, which results in"bcd". - The transformation wraps around the alphabet if it exceeds
'z'. For example, ifs[i] = 'y'andnums[24] = 3, the character'y'transforms into the next 3 consecutive characters ahead of it, which results in"zab".
Return the length of the resulting string after exactly t transformations.
Since the answer may be very large, return it modulo 109 + 7.
Example 1:
Input: s = "abcyy", t = 2, nums = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2]
Output: 7
Explanation:
First Transformation (t = 1):
'a'becomes'b'asnums[0] == 1'b'becomes'c'asnums[1] == 1'c'becomes'd'asnums[2] == 1'y'becomes'z'asnums[24] == 1'y'becomes'z'asnums[24] == 1- String after the first transformation:
"bcdzz"
Second Transformation (t = 2):
'b'becomes'c'asnums[1] == 1'c'becomes'd'asnums[2] == 1'd'becomes'e'asnums[3] == 1'z'becomes'ab'asnums[25] == 2'z'becomes'ab'asnums[25] == 2- String after the second transformation:
"cdeabab"
Final Length of the string: The string is
"cdeabab", which has 7 characters.
Example 2:
Input: s = "azbk", t = 1, nums = [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
Output: 8
Explanation:
First Transformation (t = 1):
'a'becomes'bc'asnums[0] == 2'z'becomes'ab'asnums[25] == 2'b'becomes'cd'asnums[1] == 2'k'becomes'lm'asnums[10] == 2- String after the first transformation:
"bcabcdlm"
Final Length of the string: The string is
"bcabcdlm", which has 8 characters.
Constraints:
1 <= s.length <= 105sconsists only of lowercase English letters.1 <= t <= 109nums.length == 261 <= nums[i] <= 25