AcWing 647. 懒惰拼字赛
原题链接
简单
作者:
百无禁忌_5
,
2023-01-03 16:34:34
,
所有人可见
,
阅读 177
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string.h>
using namespace std;
const int N = 1005;
unsigned long long n;
int main()
{
scanf("%ld", &n);
unsigned long long num = n;
while(n --)
{
char str[1005];
long long ans = 1, res = 1;
scanf("%s", str);
if(strlen(str) == 1)
{
ans = 1;
printf("Case #%ld: %ld\n", num - n, ans);
continue;
}
for(int i = 1; i < strlen(str) - 1; i ++)
{
res = 1;
if(str[i - 1] != str[i]) res ++;
if(str[i] != str[i + 1]) res ++;
if(str[i - 1] == str[i + 1]) res --;
if(res <= 0) res = 1;
ans *= res;
ans %= 1000000007;
}
res = 1;
if(str[0] != str[1]) res ++;
ans *= res;
res = 1;
if(str[strlen(str) - 1] != str[strlen(str) - 2]) res ++;
ans *= res;
printf("Case #%ld: %ld\n", num - n, ans % 1000000007 );
}
return 0;
}