2019.2.2 自主训练日志

      训练第十三天,今天没有AC一个题目Ծ‸Ծ,先说一下这个做了一天的题目,

Noder咖啡馆里面有N个座位,每天会有若干个顾客来店里面消费,会得到相应的服务。一个顾客占一个位置,顾客离开之后位置就会空出来。如果顾客来了之后没有位置,那么顾客就会直接离开,也就得不到服务。
现在已知座位数N,以及一天之内顾客来走的顺序,请统计一下有多少顾客没有得到服务。
输入
单组测试数据。
第一行有一个整数N(1<=N<= 20 )。
第二行有若干个大写字母,表示顾客的来和走。字母是成对出现的,字母的第一次出现表示顾客来到了咖啡馆,字母的第二次出现表示该顾客离开了咖啡馆。每一种字母最多出现一对。没有座位的顾客总是在那些正在接受服务的顾客离开之前离开。
输出
输出一个整数,表示有多少顾客没有接受服务。
输入样例
样例输入1
2
ABBAJJKZKZ
样例输入2
3
GACCBDDBAGEE
输出样例
样例输出1
0
样例输出2
1
思路清晰,1.逐一判断字符数组中的元素是否出现过,如果没出现过,总数n减1,如果出现过,总数n加1。2.判断剩余座位数是否大于0,即至少为1,如果小于等于0,计数器加1,并且跳过下次循环。3.输出计数器结果。
代码实现:
#include
#include
#include
using namespace std;
int main()
{
int n,m,flag = 1,counts = 0;
cin>>n;
m = n-1;
char st[10001];
gets(st);
for(int i = 1;i<strlen(st);i++)
{
for(int j = 0;j<i;j++)
{
if(st[j]==st[i])
{
flag = 0;
break;
}
else
flag = 1;
}
if(flag)
m = m-1;
else
m = m+1;
if(m<0)
{
counts++;
continue;
}
}
cout<<counts<<endl;
return 0;
}
但是问题出现在gets语句,要调用字符串中的单个字符可以使用之前学到的方法,可是在这传代码里,输入的n成了字符串的一部分,或者说输入n之后不能使用回车键,要不然直接输出结果。所以现在无法验证算法本身的错误,这个是最大的阻碍。
编程珠玑没抽出时间来看,今天有点其他事耽误了,手机出了问题,看书也没法实现(눈_눈)
心塞。
今天收获不多,期望明天解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值