zoukankan      html  css  js  c++  java
  • 运算符号优先级的应用

    在一道leetcode的题目中我们深刻

    看到C++运算符优先级的应用

    如下:

    另外简易总结本题的思路:

    遍历所有的字符串是必须的,一开始的我的思路如下

    排序vector,特殊排序重写compare

    [](string &a,string &b){if(a.size()!=b.size()){return a.size()>b.size();}

    else{return a<b;}

    }

    排序完成后,我们进行匹配;

    后来,没实现,我在尝试中,看了discuss,觉得方法更好的,只需O(n)遍历一遍,更新最后的string就可以了,排序的复杂度肯定会更高!

    class Solution {
    public:
    string findLongestWord(string s, vector<string>& d) {
    string ans;
    for (int i = 0; i < d.size(); i++) {
    //作为迭代器访问vector<string>& d中的string;
    int pi = 0, pj = 0;
    for (; pi < s.size() && pj < d[i].size(); pi++) {
    pj += s[pi] == d[i][pj];
    //+=15级 == 8级
    }
    //开始查找vector中每个的字符匹配项直到两个字符串一个结束
    if (pj == d[i].size() && (ans.size() < d[i].size() || (ans.size() == d[i].size() && ans > d[i])))
    //遍历一遍每一个都处理一下时进行,逻辑与13级,逻辑或14级
    //pj==d[i].size();判断是否匹配j
    //判断ans.size()<d[i].size(),匹配的字符串大小大于目前的ans字符串大小?
    //加上另外一种情况 --- 或者ans.size()==d[i].size()且ans>d[i]
    { ans = d[i];}
    }
    return ans;
    }
    };

  • 相关阅读:
    正则表达式收藏
    c#mvc实现登录
    jQuery获取URL中的参数
    TortoiseSVN新人使用指南
    CheckBox获取一组及全选
    day45
    day44
    day43
    day43
    day42
  • 原文地址:https://www.cnblogs.com/fenglongyu/p/7635586.html
Copyright © 2011-2022 走看看