http://172.21.2.10/JudgeOnline/problem.php?cid=1468&pid=4
求一串字符串里pizza出现的最大次数,每个字母只能用一次且顺序要正序。
用4个变量标记piza四个字母,只标记出现在前一个字母后面的字母,遍历一遍,输出a标记多少遍即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char a[111111];
int main(){
while(scanf("%s",&a)!=EOF){
int p1=0,i1=0,z1=0,a1=0;
for(int i=0;i<strlen(a);i++)
{
if(a[i]=='p')p1++;
else if(a[i]=='i'&&i1<p1)i1++;
else if(a[i]=='z')
{
if(z1<i1*2)z1++;
}
else if(a[i]=='a'&&a1<z1/2)
a1++;
}
printf("%d\n",a1);
}
return 0;
}