连胜王
题目描述: 在篮球比赛中,连胜是一件让球迷非常兴奋的事情。现给出n 场比赛的获胜队伍编号,请求出哪个队伍连胜的场次最多? 本题的输入确保获得连胜场次最多的球队,只有 1 个。 比如,输入 6 场比赛获胜队伍数据如下:1 2 2 2 6 6; 那么,1 号队没有获得过连胜,2 号队连胜 3场,6 号队连胜 2 场,获得连胜场次最多的球队是 2 号队。 输入 第 1 行有一个整数 n ,代表比赛的场数。 (5≤n≤100) 第 2 行有 n 个整数,分别代表了每场比赛 获得胜利的球队的编号。 输出 输出连胜场次最多球队的编号。
输入复制
6
1 2 2 2 6 6
输出复制
2
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int max=-1;
int maxi=-1;
int cnt=0;
int pr;
for(int i=0;i<n;i++)
{
int s;
cin>>s;
if(pr==s)
{
cnt++;
}
else if(pr!=s)
{
cnt=1;
}
if(maxi<cnt)
{
maxi=cnt;
max=s;
}
pr=s;
}
cout<<max;
return 0;
}
数字母
题目描述: 小明喜欢研究字符串。 这天,小明随手在草稿纸上写下了一个大写字母字符串。此时,班长把成绩报告单发到了每位同学的手 中。小明看到自己每门都是 `A` (优秀),非常高兴,灵光一闪想到一个问题: 在刚刚写下的字符串中, 字母 `A` 最多连续出现了多少次呢? 小明立刻数了起来,但这个字符串实在是太长了,希望你帮帮他。 输入 第一行包含一个整数 N ,表示字符串长度。 第二行包含一个字符串。 输出 第一行包含一个整数,表示该字符串中字母 `A` 最多连续出现的次数。
输入复制
5
BAACA
输出复制
2
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int maxi=-1;
int cnt=0;
char prch;
for(int i=0;i<n;i++)
{
char ch;
cin>>ch;
if(ch=='A'&&prch=='A')
{
cnt++;
}
else if(prch!=ch&&ch=='A')
{
cnt=1;
}
if(maxi<cnt)
{
maxi=cnt;
}
prch=ch;
}
cout<<maxi;
return 0;
}
投篮(这道题有两种解题方法)
题目描述: 小明每次必须投满规定的积分才能结束投篮,积分规则是这样的:小明每投中一个球得 1 分,如果没投中但 球碰到了篮框、篮板或篮网则既不得分也不扣分,如果球啥也没碰到(俗称三不沾)则倒扣 1 分,作为奖励小 明如能连续投中 3 球则额外加 1 分,如连续投中 4 球则额外加 2 分,依次类推,即连续投中 K 球(K≥3)则额 外加 K−2 分。 教练每次给小明计分都很辛苦,于是他要求小明设计一个能自动计分的程序,小明觉得这个程序也很简单, 于是他把这个任务又交给了你! 输入 输入数据共有两行,第一行为一个正整数 n,表示小明共进行了 n 次投篮。 第二行为一个由 n 个字符组成的字符串,该字符串只包含三种字符,分别是 大写字母 V,T,X,其中 V 表示投中了, T 表示没投中但不用扣分, X 表示要 扣 1 分。 输出 输出一行仅有一个整数为小明的得分。【样例解释】 先连续投中 5 个球,得到 5+3 分,其中 3 分为额外奖励到的。接着第六个球没投中也没扣分,第 七个球扣了 1 分, 最后一球得 1 分, 因此答案为 8 。
输入复制
8
VVVVVTXV
输出复制
8
第一种(等连中被打断后再计算奖励的积分)
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int maxi=-1;
int cnt=0;
int cnt2=0;
char prch;
for(int i=0;i<=n;i++)
{
char ch;
if(i==n)
{
ch=0;
}
else
{
cin>>ch;
}
if(ch=='V'&&prch=='V')
{
cnt++;
cnt2++;
}
else if(prch!='V'&&ch=='V')
{
cnt++;
cnt2=1;
}
else if(ch=='X')
{
cnt--;
cnt2=0;
}
else if(ch!='V'&&prch=='V'&&cnt2>2)
{
cnt=cnt+(cnt2-2);
}
prch=ch;
}
cout<<cnt;
return 0;
}
第二种(只要开始连中,就不断计算奖励的积分)
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int maxi=-1;
int cnt=0;
int cnt2=0;
char prch;
for(int i=0;i<n;i++)
{
char ch;
cin>>ch;
if(ch=='V'&&prch=='V')
{
cnt++;
cnt2++;
}
else if(prch!='V'&&ch=='V')
{
cnt++;
cnt2=1;
}
else if(ch=='X')
{
cnt--;
cnt2=0;
}
if(cnt2>2)
{
cnt++;
}
prch=ch;
}
cout<<cnt;
return 0;
}