占座
时间: 1ms 内存:128M
描述:
Tree经过不懈奋斗,终于上了烟台大学,开始体验美好的大学生活,早晨去上个高数课吧,进到教室发现,全是书啊(占座的),不得不在后面坐着上课,Tree不服气啊,第二次课早早的来到教室准备占座,占座也是有规矩的:首先别人占的座位,你不能去占;其次,连着的空座,无论连着多少个空座都可以只用一本书去占,Tree不知道最少用几本书可以占完这一排的空座,只好请你来帮忙计算一下啦。
输入:
输入一排座位的状态,'*'代表该座被别人占了,'@'代表该座是空座,可以占座,每排恒定10个座位。
输出:
输出Tree最少需要多少本书占这一排所有的空座
示例输入:
*@*@@@***@
示例输出:
3
提示:
参考答案(内存最优[752]):
#include<stdio.h>
int main()
{
char a[100];
int i,b=0;
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='*')
i++;
if(a[i]=='@'&&a[i+1]!='@')
b++;
}
printf("%d\n",b);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
#include <cstdio>
#include <iomanip>
#include <string>
#include <string.h>
int main()
{
char a[100];
int sum=0,i,j,len;
cin>>a;
len=strlen(a);
if(a[0]=='@') sum++;
for(i=1;i<len;i++)
if(a[i]=='@'&&a[i-1]!='@')
sum++;
cout<<sum<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
