zoukankan      html  css  js  c++  java
  • [模拟字符串] [洛谷] P1597 语句解析

    输入字符串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;
    }
    
  • 相关阅读:
    MySql学习2
    Java学习:JDBC
    MySql学习
    Java学习:网络编程
    Java学习:反射
    Java学习:多线程(2)
    Java学习:多线程
    .net后台webclient用post方式发送文件和数据
    实用
    day&day
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270803.html
Copyright © 2011-2022 走看看