class Solution {
public:
int lengthAfterTransformations(string s, int t) {
int modulo = 1000000007;
vector<int> charCount(26, 0);
for(const char& x : s)
{
++charCount[x - 'a'];
}
for(int ii=0; ii<t; ++ii)
{
int origNumOfA = charCount[0];
int origNumOfB = charCount[1];
int origNumOfZ = charCount[25];
// charCount for A, B, and C
charCount[0] = origNumOfZ % modulo;
charCount[1] = (origNumOfA + origNumOfZ) % modulo;
for(int ii=25; ii>=3; --ii)
{
charCount[ii] = charCount[ii-1] % modulo;
}
charCount[2] = origNumOfB;
}
int count = 0;
for(int x : charCount)
{
count = (count + x) % modulo;
}
return count;
}
};