竞选班长
无标题文档
竞选班长
时间限制: 1 Sec 内存限制: 32 MB提交: 91 解决: 47
[提交][状态][讨论版]
题目描述
有A,B,C,D,E五位候选人参加班长竞选,全班同学投票,得票最高者将被选为班长。已知全班人数不超过60人,现要设计一个计票程序,计算各位候选人的得票数,并输出班长的编号。
输入
一行字符,这些字符只包含A,B,C,D,E和*,总长度不超过60。表示选票编号序列,废票用*表示。
输出
一行,输出得票数最多的编号。若最多票数有两人或两人以上相同或选票都是废票,则选举失败,则输出字符串“Nobody”。
样例输入
样例1:ABAD*CBACBB
样例2:EE*AD*C*ACBD
样例2:EE*AD*C*ACBD
样例输出
样例1:B
样例2:Nobody
样例2:Nobody
var
a:array['A'..'E'] of longint;
s:string;
i,ans:char;
j:longint;
no:boolean;
begin
readln(s);
for j:=1 to length(s) do
begin
if s[j]='*' then continue;
inc(a[s[j]]);
end;
ans:='A'; no:=false;
for i:='B' to 'E' do
begin
if(a[i]>a[ans]) then begin ans:=i; no:=false; end
else if(a[i]=a[ans]) then no:=true;
end;
if no then writeln('Nobody') else writeln(ans);
end.
a:array['A'..'E'] of longint;
s:string;
i,ans:char;
j:longint;
no:boolean;
begin
readln(s);
for j:=1 to length(s) do
begin
if s[j]='*' then continue;
inc(a[s[j]]);
end;
ans:='A'; no:=false;
for i:='B' to 'E' do
begin
if(a[i]>a[ans]) then begin ans:=i; no:=false; end
else if(a[i]=a[ans]) then no:=true;
end;
if no then writeln('Nobody') else writeln(ans);
end.

浙公网安备 33010602011771号