


二. 思路

三. 代码
class Solution
{
static final int M = 30, MOD = (int) 1e9 + 7;
int[][] f = new int[2][M];
public int lengthAfterTransformations(String s, int t)
{
for (Character c : s.toCharArray())
++f[0][c - 'a'];
for (int i = 1; i <= t; ++i)
for (int j = 0; j < 26; ++j)//这里是赋值的,不清理当前层也可以
if (j != 1) f[i & 1][j] = f[i - 1 & 1][j == 0 ? 25 : j - 1] % MOD;
else f[i & 1][j] = (f[i - 1 & 1][j - 1] + f[i - 1 & 1][25]) % MOD;
int ans = 0;
for (int i = 0; i < 26; ++i)
ans = (ans + f[t & 1][i]) % MOD;
return ans;
}
}