@PaulGuan
2016-10-02T18:09:37.000000Z
字数 585
阅读 744
Algorithm
一个可以有前导0的长度n (1<=n<=50) 的只带数字的字符串,判断其出现次数最多的幸运数字(只由4和7组成),出现次数相同就按字典序排序,输出出现次数最多的幸运数,如果没有包含幸运数字,输出-1。
虽然本题要求找出次数最多的幸运数字,但是,其实只用找4和7,因为其他的多位数幸运数字都包含4和7这两个幸运数字,例如出现了一次47477,那么出现了2次4和3次7,而且,多位数的幸运数字的字典序是大于4和7的,所以,输出只可能是在4,7和-1中的一个。
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string a;
int main(void)
{
cin>>a;
int c4=0,c7=0;
int i;
for(i=0;i<a.size();i++)
{
if(a[i]=='4')
c4++;
if(a[i]=='7')
c7++;
}
if(c4>c7)
cout<<"4"<<endl;
else if(c4<c7)
cout<<"7"<<endl;
else if(c4==c7&&c4!=0)
cout<<"4"<<endl;
else
cout<<"-1"<<endl;
return 0;
}