第一题patb-40 ———有几个pat
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个 PAT?
直接甩代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int num_pat = 0, num_at = 0, num_t = 0;
cin >> s;
for (int i = s.length() - 1; i >= 0; i--)
{
if (s[i] == 'T')num_t=(num_t+1)%1000000007;//**反过来先从p开始也是可以的**
else if (s[i] == 'A')num_at = (num_at + num_t)%1000000007;
else
num_pat = (num_pat + num_at)%1000000007;
}
cout << num_pat << endl;
system("pause");
}
第二题坏掉的台阶——华师软工2018复试上机题
有 k 个台阶坏了,没法走。楼梯一共有 n 层,你一次能上一阶、两阶或三阶台阶,请问,你从楼梯底部 (0 开始) 走到楼梯顶部,共有多少种走法。
还是甩代码
#include<iostr