题目描述
今天是个好日子,整数小伙伴们又一起出来聚会了。大家商议决定:今天玩捉迷藏! 玩法很简单,就是把藏在一个长长的字符串中(任何两个人都不会并排藏在一起)数字伙伴找出来。而且,因为伙伴们太多,只找到此次藏起来的最大的那个伙伴就可以了。并且,大家一致同意,让“1”做第一个找人的人——当然,事先,他并不知道到底有哪些伙伴藏起来了……
游戏开始了。“1”是一个很聪明的人,很快,他就把最大的那个伙伴找出来了……
如果你是“1”,你能写个程序来解决这件事情么?
输入格式
只有一个字符串,这里面藏有很多的整数小伙伴。字符串最多包含255个字符
输出格式
只有一个整数,表示藏在其中的最大的那个整数小伙伴的位置(整数第一个数字在原串中的位置)。
样例输入
*((*-a32AB342+//32143abAA
样例输出
17
我的WA代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
long long n = s.size(), index = 0, max = -2147483647, sum = 0, wz[100005] = {0}, num[100005];
memset(num, -2147483647, sizeof(num));
bool flag = false;
for(int i = 0; i < n; i++)
{
if(s[i] >= '0' && s[i] <= '9')
{
if(!flag) flag = true, sum += s[i] - '0', wz[index] = i + 1;
else sum *= 10, sum += s[i] - '0';
}
else
{
if(sum != 0) num[index++] = sum;
sum = 0, flag = false;
}
}
long long k = 0;
for(int i = 0; i < index; i++)
if(num[i] > max) max = num[i], k = wz[i];
printf("%lld", k);
return 0;
}