题目链接:https://vj.ti12z.cn/415c275cb0a15fcb4ede21b8cb5297de?v=1565375940
代码:
//Full of love and hope for life
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <queue>
#include <vector>
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
//https://paste.ubuntu.com/
//https://www.cnblogs.com/zzrturist/ //博客园
//https://blog.csdn.net/qq_44134712 //csdn
using namespace std;
const int maxn=1e5+10;
typedef long long ll;
const int mod=1e9+7;
char s[maxn];
int dp[maxn];
int main(){
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
cin >> s+1;
int len=strlen(s+1);
dp[0]=1;
dp[1]=1;
for(int i=2;i<=len;i++){
if((s[i]=='W'&&s[i-1]=='N')||(s[i]=='W'&&s[i-1]=='S')||(s[i]=='E'&&s[i-1]=='N')||(s[i]=='E'&&s[i-1]=='S')){
dp[i]=(dp[i]+dp[i-1])%mod;
dp[i]=(dp[i]+dp[i-2])%mod;
}
else{
dp[i]=(dp[i]+dp[i-1])%mod;
}
}
cout << dp[len];
return 0;
}