函数返回值的注意事项

 1 bool fan(string s)
 2 {
 3     int l=s.size();
 4     string x;
 5     for(int i=0;i<l;i++)
 6     {
 7     
 8             if(s[i]!='P')
 9             {
10                 x+=s[i];
11                 if(s[i]!='A')
12                 return false;
13             }
14             
15             else
16             break;
17             
18     }
19     if(s==x+"PAT"+x)
20     return true;    
21     else
22     return false;
23 }

注意:

写函数时一定要写对立面:return false,否则函数会一直返回return true。

bool bin(string s)
{
    int l=s.size();
    string a,b,c;
    int flag=1,L=0;
    for(int i=0;i<l;i++)
    {
            if(s[i]!='P'&&flag==1)
            {
                a+=s[i];
                L++;
                if(s[i]!='A')
                return false;
            }
            else if(s[i]=='P')
            {
                flag=2;
            }
            else if(flag==2&&s[i]!='T')
            {
                b+=s[i];
                if(s[i]!='A')
                return false;
                
            }
            else if(s[i]=='T')
            {
                flag=3;                
            }
            else
            {
                c+=s[i];
                if(s[i]!='A')
                return false;                
            }
    }
    int l1=b.size();
    if(l1>0)
    b.erase(b.begin());
    else
    return false;
    c.erase(c.begin(),c.begin()+L);
    string q=a+"P"+b+"T"+c;
    if(s==a+"P"+b+"AT"+c+a&&fan(q)==true)
    return true;
    return false;
}

 注意:

flag如何控制入口,方便在线处理

结尾的return false 一定不要忘记。

原文地址:https://www.cnblogs.com/clanguageweaver/p/6661996.html