首先祝大家儿童节快乐!
第一次写题解请多担待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; }