6.29-30 validParenthesis & reversePolish dpX2LATER!!

to do

完又有点强迫症了。。
30号准备考试吧先乖乖

1] Valid Parentheses

prettier

    bool isValid(string s) {
        stack<char> stk;
        for (char& c:s) {
            if (stk.empty() || c=='(' || c=='[' || c=='{') {
                stk.push(c);
            } else if ( ( c==')' && stk.top()!='(' )
                     || ( c==']' && stk.top()!='[' ) 
                     || ( c=='}' && stk.top()!='{' ) ) {
                return false;
            } else {
                stk.pop();
            }
        }
        return stk.empty();
    }

4] Evaluate Reverse Polish Notation

string("blaj").find(char or str) return returns string::npos. on not found (cast to -1)

正常的写更快,可是看到lambda expression写法好鸡冻~~开启新世界

    int evalRPN(vector<string>& tokens) {
        unordered_map<string, function<int (int, int)>> opm = {
            {"+", [](int a, int b) { return a+b; } },
            {"-", [](int a, int b) { return a-b; } },
            {"*", [](int a, int b) { return a*b; } },
            {"/", [](int a, int b) { return a/b; } }
        };
        stack<int> stk;
        for (auto s:tokens) {
            if (string("+-*/").find(s)!=-1) {
                int p2 = stk.top();
                stk.pop();
                int p1 = stk.top();
                stk.pop();
                stk.push( (opm[s])(p1, p2) );
            } else {
                stk.push(stoi(s));
            }
        }
        return stk.top();
    }  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,791评论 0 33
  • 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak、循环引用、不能执行之类的警告。 有代码洁癖的孩子...
    磁针石阅读 11,533评论 0 16
  • Which Clang Warning Is Generating This Message? (http://f...
    喜欢就可以阅读 3,051评论 1 1
  • 每个人都是一个品牌,尤其进入互联网时代,每个人都是一个自媒体,因此一定要注意自我品牌的设计、包装、维护、推广! 设...
    黄健歌阅读 221评论 0 0
  • 在宾馆里看了电影后,我们牵着手来到洱海旁漫步。 抬头望向天空,美得让人窒息。我们讨论着哪些是星座,猜测哪个会是北斗...
    我叫米垚阅读 203评论 1 2