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 };

 

posted @ 2021-03-15 00:15  Mrsdwang  阅读(70)  评论(0编辑  收藏  举报