首页 > 代码库 > LeetCode题解
LeetCode题解
Reverse Words in a String
考虑几个特殊的情况
1.若字符窜s=" "
2.字符窜s=“a b d e”
3.字符窜s=“ a”
class Solution {public: void reverseWords(string &s) { int i; int cas=0; string st[100]; s+=‘ ‘; for(i=0;i<s.size();i++) { if(i==0 && s[0]==‘ ‘) continue;//排除掉首字符窜为空格 if(s[i]==‘ ‘ && s[i-1]==‘ ‘) continue;//排除掉多个空格字符 if(s[i]==‘ ‘ && s[i-1]!=‘ ‘) { cas++; continue; } st[cas]+=s[i]; } s.clear(); if(cas==0) return ; s+=st[cas-1]; for(i=cas-2;i>=0;i--) { if(st[i]!=" ") { s+=‘ ‘; s+=st[i]; } }};};
Evaluate Reverse Polish Notation
考虑特殊情况
1.只有一个数字的时候
2.出现负数的情况
class Solution{public: int evalRPN(vector<string> &tokens) { // if(tokens.size()==1) return tokens[0]; stack<int>S; for(int i=0; i<tokens.size(); i++) { if(!(tokens[i][0]>=0 && tokens[i][0]<=9)) { if((tokens[i][0]>=‘0‘ && tokens[i][0]<=‘9‘)) { int n; sscanf(tokens[i],"%d",&n); S.push(n); } else if(!(tokens[i][0]>=‘0‘ && tokens[i][0]<=‘9‘) && (tokens[i][1]>=‘0‘ && tokens[i][1]<=‘9‘)) { int n; sscanf(tokens[i],"%d",&n); S.push(n); } else { int n,m; m=S.top();S.pop(); n=S.top();S.pop(); switch(tokens[i][0]) { case ‘+‘:S.push(m+n);break; case ‘-‘:S.push(n-m);break; case ‘*‘:S.push(n*m);break; case ‘/‘:S.push(n/m);break; } } } } return S.top(); }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。