Newcoder 70 A.幸运数字Ⅰ(水~)

本文探讨了一种特殊类型的数字——幸运数字,这类数字由4和7组成。文章提出了一种算法,用于从给定字符串中找出出现次数最多且非空的幸运数字子串。通过对4和7数量的统计,确定了输出字典序最小的幸运数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

定义一个数字为幸运数字当且仅当它的所有数位都是444或者777

比如说,47、744、447、744、4477444都是幸运数字而5、17、4675、17、467517467都不是。

现在,给定一个字符串sss,请求出一个字符串,使得:

1、它所代表的整数是一个幸运数字;

2、它非空;

3、它作为sss的子串(不是子序列)出现了最多的次数(不能为0次)。

请求出这个串(如果有多解,请输出字典序最小的那一个)。

Input

s(1≤∣s∣≤50)s(1\le |s|\le 50)s(1s50)sss只包含数字字符,可以有前导零。

Output

一个串表示答案。

无解输出−1-11

Sample Input

047

Sample Output

4

Solution

统计4,74,74,7的个数,如果444的数量不小于777的数量则为444,否则是777,如果不存在4,74,74,7则无解

Code

#include<cstdio>
#include<cstring>
using namespace std;
char s[55];
int main()
{
	scanf("%s",s);
	int n=strlen(s),n4=0,n7=0;
	for(int i=0;i<n;i++)
		if(s[i]=='4')n4++;
		else if(s[i]=='7')n7++;
	if(!n4&&!n7)printf("-1\n");
	else if(n4>=n7)printf("4\n");
	else printf("7\n");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值