【CodeForces - 122B】Lucky Substring(思维)

Petya loves lucky numbers. Everybody knows that lucky numbers are positive integers whose decimal representation contains only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

One day Petya was delivered a string s, containing only digits. He needs to find a string that

  • represents a lucky number without leading zeroes,
  • is not empty,
  • is contained in s as a substring the maximum number of times.

Among all the strings for which the three conditions given above are fulfilled, Petya only needs the lexicographically minimum one. Find this string for Petya.

Input

The single line contains a non-empty string s whose length can range from 1 to 50, inclusive. The string only contains digits. The string can contain leading zeroes.

Output

In the only line print the answer to Petya's problem. If the sought string does not exist, print "-1" (without quotes).

Examples

Input

047

Output

4

Input

16

Output

-1

Input

472747

Output

7

Note

The lexicographical comparison of strings is performed by the < operator in the modern programming languages. String x is lexicographically less than string yeither if x is a prefix of y, or exists such i (1 ≤ i ≤ min(|x|, |y|)), that xi < yiand for any j (1 ≤ j < ixj = yj. Here |a| denotes the length of string a.

In the first sample three conditions are fulfilled for strings "4", "7" and "47". The lexicographically minimum one is "4".

In the second sample s has no substrings which are lucky numbers.

In the third sample the three conditions are only fulfilled for string "7".

题意:

给你一个字符串,找出一个非空的,只包含4和7的字典序最小的子串,并且要包含出现次数最多的幸运数字。

先看有无4和7,没有输出-1,有的话,找出现数量最多的。因为是字典序最小所以如果有4或7,那么一定是这两个中的一个(即只打印4或7)。

思路:

只要看懂了题意,问题就变得很简单了。

#include<stdio.h>
#include<string.h>
#include<queue>
#include<set>
#include<iostream>
#include<map>
#include<stack>
#include<cmath>
#include<algorithm>
#define ll long long
#define mod 1000000007
#define eps 1e-8
using namespace std;
int main()
{
	char s[50000];
	cin>>s;
	int l =strlen(s);
	int fo=0,se=0;
	for(int i=0;i<l;i++)
	{
		if(s[i]=='4') fo++;
		else if(s[i]=='7') se++;
	}
	if(fo==0&&se==0)
	printf("-1\n");
	else if(fo>=se)
	printf("4\n");
	else
	printf("7\n"); 
	return 0;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值