描述
今天是个好日子,整数小伙伴们又一起出来聚会了。大家商议决定:今天玩捉迷藏!玩法很简单,就是从所有人中找出一部分藏在一个长长的字符串中(任何两个人都不会并排藏在一起),而且,因为伙伴们太多,只找到此次藏起来的最大的那个伙伴就可以了。并且,大家一致同意,让“1”做第一个找人的人――当然,事先,他并不知道到底有哪些伙伴藏起来了…… 游戏开始了。“1”是一个很聪明的人,很快,他就把最大的那个伙伴找出来了…… 如果你是“1”,你能写个程序来解决这件事情么?
输入
输入只有一个字符串(不超过1000个字符),这里面藏有很多的整数小伙伴。
输出
输出只有一个整数,表示藏在其中的最大的那个整数小伙伴的位置(整数第一个数字在原串中的位置)。 已知,所有的小伙伴都不会超过2000000000。
样例输入
((-a32AB342+//32143abAA
样例输出
17
提示
这个串中共藏有32、342和32143三个小伙伴,其中32143是最大的,它在原来的串中的位置是17。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
int maxi=-2000000001;
//cout<<maxi<<endl;
cin>>s;
s+=’’;
int l=s.length();
bool f=1;
int now,w,maxw;
int fs=1;
for (int i=0;i<l;i++)
{
if (f) now=0;
if (s[i]>=‘0’&&s[i]<=‘9’)
{
if (f)
{
w=i+1;
//if (s[i-1]==’-’) fs=-1;
//else fs=1;
}
f=0;
now=fsnow*10+s[i]-‘0’;
}
else
{
f=1;
if(now>maxi)
{
maxi=now;
maxw=w;
}
}
}
cout<<maxw<<endl;
return 0;
}
分析:考虑了很多种情况,因为输出变量有误WA了3次,题目说整数,但貌似没考虑负数和首位为0的情况。