首先祝大家儿童节快乐!
第一次写题解请多担待o( ̄︶ ̄)o
小喵技能是将n后加ya
小小喵技能是将ya变成n
那么第一步是先要找出原字符串中‘n’和‘ya’的个数以及其他字符的个数(先放一边,最后需要再加上)
第二步,写个K次循环,如果第二个字符串是'n'或‘N’进行对应的变换
N:ya++,ya再取模(敲黑板!!!要取模!!)
n; n加上ya的个数,ya清零(把ya看做一个整体),n再取模
第三步,都加起来再取模
代码如下:
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <climits>
using namespace std;
#define ll long long
const int Mx = 1e7 + 10;
const ll Mod = 1e9 + 7;
int main()
{
string s1, s2;
ll k, i, N = 0, n = 0, ya = 0;
cin >> s1;
cin >> k;
cin >> s2;
ll s = s1.size();
for (i = 0; i < s; i++)
{
if (s1[i] == 'n')
n++;
if (s1[i] == 'y' && s1[i + 1] == 'a')
ya++;
}
ll num3 = s - n - ya * 2;
for (ll i = 0; i < k; i++)
{
if (s2[i] == 'N')
{
ya += n;
ya = ya % Mod;
}
else if (s2[i] == 'n')
{
n += ya;
ya = 0;
n = n % Mod;
}
}
cout << (n + ya * 2 + num3) % Mod << endl;
return 0;
}
京公网安备 11010502036488号