提示
1、利用atoi函数字符串转整数
一、代码
写法1
#include <stdlib.h>
int calPoints(char ** ops, int opsSize){
int temp[opsSize],pos=-1,ret=0;
for(int i=0;i<opsSize;i++){
//printf("\n%s",ops[i]);
if(ops[i][0]=='D'){
temp[++pos]=2*temp[pos];
}else{
if(ops[i][0]=='C'){
pos--;
}else{
if(ops[i][0]=='+'){
temp[++pos]=temp[pos]+temp[pos-1];
}else{
temp[++pos]=atoi(ops[i]);
}
}
}
}
for(int i=0;i<=pos;i++){
ret+=temp[i];
}
return ret;
}
写法2
#include <stdlib.h>
int calPoints(char ** ops, int opsSize){
int temp[opsSize],pos=-1,ret=0;
for(int i=0;i<opsSize;i++){
switch (ops[i][0]){
case 'D':temp[++pos]=2*temp[pos];ret+=temp[pos];break;
case 'C':ret-=temp[pos];pos--;break;
case '+':temp[++pos]=temp[pos]+temp[pos-1];ret+=temp[pos];break;
default: temp[++pos]=atoi(ops[i]);ret+=temp[pos];
}
}
return ret;
}