请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

vector数组比较大小

请问两个vector数组比较大小时,可以直接用数组名字比较吗
这是我在LeetCode上看到的代码:
vector findAnagrams(string s, string p) {
if(s.size()<p.size()) return {};
int l=0;
int r=-1;
vectorfrep_s(26,0),frep_p(26,0),res;
for(int i=0;i<p.size();i++){
frep_p[p[i]-‘a’]++;
frep_s[s[++r]-‘a’]++;
}
if(frep_pfrep_s) res.push_back(l);
while(r<s.size()-1){
frep_s[s[++r]-‘a’]++;
frep_s[s[l++]-‘a’]–;
if(frep_sfrep_p)
res.push_back(l);
}
return res;
}

正在回答 回答被采纳积分+3

1回答

提问者 我是笨笨蛋 2020-03-10 09:51:16

 vector<int> findAnagrams(string s, string p) {

        if(s.size()<p.size()) return {};

        int l=0;

        int r=-1;

        vector<int>frep_s(26,0),frep_p(26,0),res;

        for(int i=0;i<p.size();i++){

            frep_p[p[i]-'a']++;

            frep_s[s[++r]-'a']++;

        }

        if(frep_p==frep_s) res.push_back(l);

        while(r<s.size()-1){

            frep_s[s[++r]-'a']++;

            frep_s[s[l++]-'a']--;

            if(frep_s==frep_p)

            res.push_back(l);

        }

        return res;

    }

以这个代码为准,上面的出错了

0 回复 有任何疑惑可以回复我~
  • 关于vector的比较我可以回答你,vector不是一般的数组,它的==运算符是经过重载的,内部会对内置类型的元素做逐个比较。另请在给出题目时给出题目的详细背景和出处,leetcode题目为了优化每个题目都有自己的上下文,上下文不清楚很难回答,请不要只贴一段代码,谢谢。
    回复 有任何疑惑可以回复我~ 2020-03-10 11:13:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信