5 Code markup
source | link

C #, 70 113 107 90 characters

static bool S(string x,string y){return y.Any(c=>x==""||(x=x.Remove(0,c==x[0]?1:0))=="");}

static bool S(string x,string y){return y.Any(c=>x==""||(x=x.Remove(0,c==x[0]?1:0))=="");}

C #, 70 113 107 90 characters

static bool S(string x,string y){return y.Any(c=>x==""||(x=x.Remove(0,c==x[0]?1:0))=="");}

C #, 70 113 107 90 characters

static bool S(string x,string y){return y.Any(c=>x==""||(x=x.Remove(0,c==x[0]?1:0))=="");}
4 replaced .ToList.ForEach with .Any(). Replaced if with turnary
source | link

C #, 70 113 107107 90 characters

static bool S(string x,string y){y.ToList()return y.ForEachAny(c=>{ifc=>x==""||(x!=""&&x[0]==c)x=x.Remove(0,c==x[0]?1:0);});return x=="";=="");}

C #, 70 113 107 characters

static bool S(string x,string y){y.ToList().ForEach(c=>{if(x!=""&&x[0]==c)x=x.Remove(0,1);});return x=="";}

C #, 70 113 107 90 characters

static bool S(string x,string y){return y.Any(c=>x==""||(x=x.Remove(0,c==x[0]?1:0))=="");}

3 changed x.Length > 0 to x != ""
source | link

C #, 70 113113 107 characters

static bool S(string x, string y){y.ToList().ForEach(c=>{if(x.Length>0&&x[0]==c)x=x.Remove(0,1);});return x=="";}

static bool S(string x,string y){y.ToList().ForEach(c=>{if(x!=""&&x[0]==c)x=x.Remove(0,1);});return x=="";}

C #, 70 113 characters

static bool S(string x, string y){y.ToList().ForEach(c=>{if(x.Length>0&&x[0]==c)x=x.Remove(0,1);});return x=="";}

C #, 70 113 107 characters

static bool S(string x,string y){y.ToList().ForEach(c=>{if(x!=""&&x[0]==c)x=x.Remove(0,1);});return x=="";}

2 misread description, should be fixed now
source | link
1
source | link