leetcode844 用c++写,为什么2个长度为0的向量,比较后大小不等?


#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Solution {
public:
    bool backspaceCompare(string s, string t) {
        int s_end,t_end;
        vector<char> ss,tt;

        s_end=modify(s);
        t_end=modify(t);
        for(int i=0;i<s_end;i++){
            if(s[i]!='#') ss.push_back(s[i]);
        }

        for(int i=0;i<t_end;i++){
            if(t[i]!='#') tt.push_back(t[i]);
        }

        if(ss.size()==1 && tt.size()==1) return true;
        else if(ss.size()!=tt.size()) return false;
        else{
            for(int i=0;i<ss.size();i++){
                if(ss[i]!=tt[i]) return false;
            }

            return true;
        }
    }

    //end不可取
    int modify(string& s)
    {
        int size=s.size();
        for(int i=0;i<size;i++)
        {
            if(s[i]=='#')
            {
                for(int j=i;j<size;j++)
                {
                    if(j==0) continue;
                    else{
                        char temple=s[j-1];
                        s[j-1]=s[j];
                        s[j]=temple;
                    }
                }

                i--;
                size--;
            }
        }

        return size;
    }
};


int main(int argc, char const *argv[])
{
    Solution solution;

    solution.backspaceCompare("ab##","c#d#");
}