洛谷 P1597 语句解析

来源:互联网 发布:汽车用品淘宝 编辑:程序博客网 时间:2024/06/17 21:34

输入字符串s 

int一个指示下标从前往后读 

如果是s[i]是a a=a[i+3]

a[i+3]可能是数字也可能是字母 所以要具体判断

每次赋值后指示下标加4 

为什么呢 a=b;c=a;

举个例子 下标加一可能读到b 再赋值 b= “=“明显不对

加四是从引号开始判 c=a;

上代码

#include <iostream>using namespace std;int main(){    int a=0,b=0,c=0;    string s;    cin>>s;    for(int i=0;i<s.length();i++)    {        if(s[i]=='a')        {            if(s[i+3]>='0'&&s[i+3]<='9')//s[i+3]为数字                a=s[i+3]-'0';            else if(s[i+3]=='b')//s[i+3]为字母 下同                a=b;            else if(s[i+3]=='c')                a=c;            i+=4;//避免读到非被赋值字母        }        else if(s[i]=='b')        {            if(s[i+3]>='0'&&s[i+3]<='9')                b=s[i+3]-'0';            else if(s[i+3]=='a')                b=a;            else if(s[i+3]=='c')                b=c;            i+=4;        }        else if(s[i]=='c')        {            if(s[i+3]>='0'&&s[i+3]<='9')                c=s[i+3]-'0';            else if(s[i+3]=='b')                c=b;            else if(s[i+3]=='a')                c=a;            i+=4;        }    }    cout<<a<<' '<<b<<' '<<c<<endl;    return 0;}