682. Baseball Game
仅供自己学习
思路:
直接用栈存储分数,然后以此判断遍历到的元素属于哪种,然后在执行该功能即可。
此处因为数据是string类型,所以当我们添加数字时,要转化成整数类型,这里是先把string转为指针类型,在转化为整数
分别调用的是c_str()函数和atoi函数。
c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.
int atoi (const char * str) 将字符指针指向的字符常量转化为整数
或者直接用 stoi进行转换,但是时间消耗会比上述的大
代码:
1 class Solution { 2 public: 3 int calPoints(vector<string>& ops) { 4 stack<int> st; 5 int res=0; 6 for(auto& a:ops){ 7 if(a=="C"){ 8 st.pop(); 9 } 10 else if(a=="+"){ 11 int t1=st.top(); st.pop(); 12 int sum=t1+st.top(); 13 st.push(t1); 14 st.push(sum); 15 } 16 else if(a=="D"){ 17 st.push(2*st.top()); 18 } 19 else{ 20 st.push(atoi(a.c_str())); 21 } 22 } 23 while(!st.empty()){ 24 res+=st.top(); 25 st.pop(); 26 } 27 return res; 28 } 29 };