最近用这种方法A过了许多查找问题,例如:寻找区间出现次数超过一半的数、寻找出现次数为奇数的数、还有下面这道题,所用的思想基本一样,核心代码无非是一个if....else.....语句。
不过这个题还需要atoi函数,如果不会用,可以参考我的这篇博客《ISBN码(关于atoi和itoa)》
代码如下:
#include
#include
#include
#include
#include
#include
using namespace std;
#define ll long long
ll ans[10000000];
int main()
{
string s;
cin>>s;
ll array[1000];char c[10000]={0};ll n,m;ll j=0;char *p;ll sum,num=0;
m=s.size();s[m]='q';
for(ll i=0;i='0'&&s[i]<='9')&&(s[i+1]>='0'&&s[i+1]<='9')) {c[j++]=s[i];}
else if((s[i]>='0'&&s[i]<='9')&&(s[i+1]<'0'||s[i+1]>'9')){c[j]=s[i];j++;p=c;ans[num++]=atoi(p);memset(c,0,sizeof(c));j=0;}
}
if(num==0) {cout<<0;return 0;}
sort(ans,ans+num);
for(ll i=0;i