***个人认为这4题出的相当好!
定义: 一个数的数位上数字均是4或7,称为‘幸运数’;
题意:求出字符串s的出现最多次数的幸运子串,有多个,求字典序最小的。
任何幸运数都由4和7组成,考虑字典序最小,满足题意的幸运子串的长度为1;
例:44由4构成,4出现一定不小于其2倍;77同理;47由4和7组成,4出现的次数不小于47,且4的字典序小于7、47;
所以有答案一定是4或者7;
num_4==0&&num_7==0, 无幸运数,输出“-1”;
num_4>=num_7,输出"4";
num_4 < num_7,输出"7";
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string s;
cin>>s;
int a=0,b=0;
for(int i=0;i<s.length();++i)
if(s[i]=='4')++a;
else if(s[i]=='7')++b;
if(a==0&&b==0)cout<<-1<<endl;
else if(a>=b){
cout<<4<<endl;
}else {
cout<<7<<endl;
}
return 0;
}