#include<iostream>
#include <map>
#include <math.h>
#include <algorithm>
#include <cstring>
using namespace std;
int main(){
string s;
cin>>s;
int a[3]; //abc
int sign=-1; //标志当前字符是abc三个变量中某一个的下标
int fuzhi=0; //默认为0,表示此时遇到变量不赋值,为1时赋值
memset(a,0,sizeof(a)); //初始化为0
for(int i=0;i<s.size();i++){
if(s[i]=='a'||s[i]=='b'||s[i]=='c'){
if(fuzhi==1){ //fuzhi为1,即可赋值,并将fuzhi再次置为0
a[sign]=a[(int)(s[i]-'a')];
fuzhi=0;
}else{ //此时fuzhi为0,表示此时的变量是等号左边的变量,需要记录下此时变量对应数组的下标
sign=(int)(s[i]-'a');
}
}else if(s[i]==':'||s[i]==';'){
continue;
}else if(s[i]=='='){ //遇到=号表示准备赋值,将fuzhi置为1
fuzhi=1;
}else{ //读取数字,while循环算出数字大小
int sum=0;
while(s[i]>='0'&&s[i]<='9'){
sum*=10;
sum+=(int)(s[i]-'0');
i++;
}
i--;
a[sign]=sum;
fuzhi=0; //赋值结束后,置0
}
}
for(int i=0;i<3;i++){
cout<<a[i]<<' ';
}
return 0;
}
【C++】1597. 买文具
2024-02-12 09:42:02 20 阅读