2 条题解

  • 0
    @ 2023-3-17 20:42:42
    #include<bits/stdc++.h>
    using namespace std;
    //输入保证正确
    //输出看仔细
    //所有情况都测
    //数组定义,保证正确
    string s;
    bool check(string s1,string s2)
    {
    	int f = 0,zs2=0,xs2=0,f1=0,f2=0;
    	for(int i = 0;i < s1.size();i ++)
    	{
    		if(s1[i]=='.')
    		{
    			f1=i;
    		}
    	}
    	for(int i = 0;i < s2.size();i ++)
    	{
    		if(s2[i]=='.')
    		{
    			f2=i;	
    		}
    	}
    	if(f1==0)
    		f1=s1.size();
    	if(f2==0)
    		f2=s2.size();
    	if(f1!=f2)
    		return f1<f2;
    	for(int i = 0;i < f1;i ++)
    	{
    		if(s1[i]<s2[i])
    			return true;
    		if(s1[i]>s2[i])
    			return false;
    	}
    	for(int i = f1+1;i < min(s1.size(),s2.size());i ++)
    	{
    		if(s1[i]<s2[i])
    			return true;
    		if(s1[i]>s2[i])
    			return false;
    	}
    	return s1.size()<s2.size();
    }
    int main()
    {
    	getline(cin,s);
    	string t = "" , ma="";
    	s=s+'!';
    	for(int i = 0;i < s.size();i++)
    	{
    		if(isdigit(s[i])||s[i]=='.')
    			t=t+s[i];
    		else
    		{
    			if(t!=""&&check(ma,t))
    				ma=t;
    			t="";
    		}
    //		cout<<t<<" ";
    	}
    	cout<<ma;
     	return 0;
    }
    

    信息

    ID
    460
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    40
    已通过
    24
    上传者