运算符号优先级的应用

Posted Catch is KING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符号优先级的应用相关的知识,希望对你有一定的参考价值。

在一道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;
}
};

以上是关于运算符号优先级的应用的主要内容,如果未能解决你的问题,请参考以下文章

指针符号和自增符号的优先级

Java 算术运算符号总结

EXCEL运算中优先级最高是的?

中缀表达式实现简单计算器

运算符

Python零基础入门