Skip to main content
3 of 3
Commonmark migration

C#6, 112 bytes

string c(string h,string n)=>h==""?"":h[0]==n[0]?h[0]+c(h.Substring(1),n.Substring(1)):"#"+c(h.Substring(1),n);

Recursive function, takes haystack h (input1) and needles n (input2).

  • If Haystack is empty, return it.
  • if first characters of haystack and needle are equal, keep the first character and call recursively while skipping the first char on both parameters
  • else return the replacement character (fixed to # here) followed by a recursive call again skipping the first character from haystack only.

Major factor for the length is the long name of Substring, but it's not long enough (compared to the number of usages) that a wrapping function would help to reduce further.