From c1babd23c46dec9fc5919547e4c68292dc2a9fcc Mon Sep 17 00:00:00 2001 From: BrianLusina <12752833+BrianLusina@users.noreply.github.com> Date: Tue, 23 Jun 2026 09:05:52 +0300 Subject: [PATCH 1/2] feat(algorithms, two-pointers): backspace string compare Algorithms to check if two strings are equal after backspace characters are applied to them. --- .../backspace_string_compare/README.md | 95 ++++++++++++++++++ .../backspace_string_compare/__init__.py | 82 +++++++++++++++ .../backspace_string_compare_example_1.png | Bin 0 -> 26337 bytes .../backspace_string_compare_example_2.png | Bin 0 -> 27623 bytes .../backspace_string_compare_example_3.png | Bin 0 -> 29461 bytes .../backspace_string_compare_example_4.png | Bin 0 -> 30566 bytes .../test_backspace_string_compare.py | 54 ++++++++++ 7 files changed, 231 insertions(+) create mode 100644 algorithms/two_pointers/backspace_string_compare/README.md create mode 100644 algorithms/two_pointers/backspace_string_compare/__init__.py create mode 100644 algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_1.png create mode 100644 algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_2.png create mode 100644 algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_3.png create mode 100644 algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_4.png create mode 100644 algorithms/two_pointers/backspace_string_compare/test_backspace_string_compare.py diff --git a/algorithms/two_pointers/backspace_string_compare/README.md b/algorithms/two_pointers/backspace_string_compare/README.md new file mode 100644 index 00000000..d98b97e2 --- /dev/null +++ b/algorithms/two_pointers/backspace_string_compare/README.md @@ -0,0 +1,95 @@ +# Backspace String Compare + +Given two strings s and t, return true if they are equal when both are typed into empty text editors. '#' means a +backspace character. + +Note that after backspacing an empty text, the text will continue empty. + +## Examples + +![Example 1](./images/examples/backspace_string_compare_example_1.png) +![Example 2](./images/examples/backspace_string_compare_example_2.png) +![Example 3](./images/examples/backspace_string_compare_example_3.png) +![Example 4](./images/examples/backspace_string_compare_example_4.png) + +Example 5: + +```text +Input: s = "ab#c", t = "ad#c" +Output: true +Explanation: Both s and t become "ac". +``` + +Example 6: + +```text +Input: s = "ab##", t = "c#d#" +Output: true +Explanation: Both s and t become "". +``` + +Example 7: +```text +Input: s = "a#c", t = "b" +Output: false +Explanation: s becomes "c" while t becomes "b". +``` + +## Constraints + +- 1 <= s.length, t.length <= 200 +- s and t only contain lowercase letters and '#' characters. + +> Follow up: Can you solve it in O(n) time and O(1) space? + +## Topics + +- Two Pointers +- String +- Stack +- Simulation + +## Solution(s) + +- [Two Pointers](#two-pointers) +- [Build String](#build-string) + +### Two Pointers + +When writing a character, it may or may not be part of the final string depending on how many backspace keystrokes occur +in the future. + +If instead we iterate through the string in reverse, then we will know how many backspace characters we have seen, and +therefore whether the result includes our character. + +The key insight is that backspace characters affect only the characters to their left, which means if we traverse both +strings from right to left, we can determine which characters are truly “visible” (i.e., not cancelled by a '#') and +compare them on the fly without ever building the final strings. We maintain two pointers, one for each string, and a +skip counter for each that tracks how many upcoming characters should be skipped due to pending backspaces. Whenever both +pointers land on a valid character simultaneously, we compare them directly and move on. + +#### Algorithm + +Iterate through the string in reverse. If we see a backspace character, the next non-backspace character is skipped. If +a character isn't skipped, it is part of the final answer. + +#### Complexity Analysis + +- **Time Complexity**: O(m + n), where m, n are the lengths of `s` and `t` respectively. Because each character in `s` + (of length `m`) and each character in `t` of length `n` is visited at most once by its respective pointer, making the + total work proportional to the combined length of both strings +- **Space Complexity**: O(1). This is because only a fixed number of variables(the pointers) are used regardless of the + input sizes, with no auxiliary data structures or string reconstruction required. + +### Build String + +Let's individually build the result of each string (build(S) and build(T)), then compare if they are equal. + +Algorithm + +To build the result of a string build(S), we'll use a stack based approach, simulating the result of each keystroke. + +#### Complexity Analysis + +- Time Complexity: O(M+N), where M,N are the lengths of S and T respectively. +- Space Complexity: O(M+N). diff --git a/algorithms/two_pointers/backspace_string_compare/__init__.py b/algorithms/two_pointers/backspace_string_compare/__init__.py new file mode 100644 index 00000000..95cb2344 --- /dev/null +++ b/algorithms/two_pointers/backspace_string_compare/__init__.py @@ -0,0 +1,82 @@ +from typing import Generator, Any +from itertools import zip_longest + + +def backspace_compare_two_pointers(s: str, t: str) -> bool: + def f(word: str) -> Generator[str, Any, None]: + skip = 0 + for x in reversed(word): + if x == "#": + skip += 1 + elif skip: + skip -= 1 + else: + yield x + + return all(x == y for x, y in zip_longest(f(s), f(t))) + + +def backspace_compare_two_pointers_2(s: str, t: str) -> bool: + # Initialize pointers at the end of each string + pointer_s, pointer_t = len(s) - 1, len(t) - 1 + # Track pending backspaces for each string + skip_s, skip_t = 0, 0 + + # Continue while there are characters left to process in either string + while pointer_s >= 0 or pointer_t >= 0: + # Advance pointer in s to find the next valid character + while pointer_s >= 0: + if s[pointer_s] == "#": + # Increment skip count and move pointer left + skip_s += 1 + pointer_s -= 1 + elif skip_s > 0: + # This character is cancelled by a backspace; consume skip and move left + skip_s -= 1 + pointer_s -= 1 + else: + # Found a valid character in s + break + + # Advance pointer in t to find the next valid character + while pointer_t >= 0: + if t[pointer_t] == "#": + # Increment skip count and move pointer left + skip_t += 1 + pointer_t -= 1 + elif skip_t > 0: + # This character is cancelled by a backspace; consume skip and move left + skip_t -= 1 + pointer_t -= 1 + else: + # Found a valid character in t + break + + # Compare the current valid characters from both strings + if pointer_s >= 0 and pointer_t >= 0: + # If characters differ, strings are not equal + if s[pointer_s] != t[pointer_t]: + return False + elif pointer_s >= 0 or pointer_t >= 0: + # One string has characters remaining while the other is exhausted + return False + + # Move both pointers left to continue comparison + pointer_s -= 1 + pointer_t -= 1 + + # All characters matched + return True + + +def backspace_compare_build_string(s: str, t: str) -> bool: + def build(word: str) -> str: + ans = [] + for c in word: + if c != "#": + ans.append(c) + elif ans: + ans.pop() + return "".join(ans) + + return build(s) == build(t) diff --git a/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_1.png b/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e520442225a9bf449eea76eceae5aac8aa2d272 GIT binary patch literal 26337 zcmeFZbyQSc_y&p?phyS`(hVXGNaqkz0@4UdDm8Qs9fOE~lt_0;w{(MwfOL0BcX!`C z-zV~|TkHOH*NvZRxg5`&z0cnJ?ES{`Jn#6(%SvG0A-aQtf`TdeTvQPS1vLf*<(fbG zEpR0)(`W?zN5V)%L|#%vghJlh!obK>9|h%6kn3k2X%XT3o^^)oUvNcl5c{#em(qCt zGu8i^*jID~t0gThEnJq?&27}@sy*cRiCP@5w@|0tfC>{Yxd8|c; z#ySa8u>)pmp%z7i{p#TljW@2kY`>k;;t;%>y(W=j4}2QJQ#|F)5Rc0oiYNS+U)N1u zK;tB{4Sj1R10q}OzOm7ejM|3IL#G7PpWP-mmK{8N1^?0rBZo3>Wo(vM21c<2|2X*Z zT{I-Yd|JbZT6Sl&bI%oQonw$4ehD?L#JVf4o*DpJ<)kUIh^cAO=`iAn-{oTozaOXG9X%Y$NS}tJ z{YWCR4@+G8Wve~#jq7ed-=Hg`!hG+(8u?V=HWp!+dXb}DA~slA75!I|1~M`zkHKej zlxyBbC^x{TYv3;t_=|#aJ=hBc4g8A>{)#4|UVe)jlX(5|^EH3ujlxPIl9J$GC0%QM zeRH^>g$jQ1~5q!ACQFo3|7WW~SzF zUI!@EKX>qg&&bQnR22W*Vq*fOdL<)IA!1>zPr=Fbl<6szz#R$-3Vv%n171Z@@juPM z|DaTcHa3>L%*^)o_DuF{OcvHKW)>bE9_FX4%&e>sa0dkLXm0b?0b&lP{R8y?K&hyZ5BmG(-*M_Y7+pQd9R6ooV1mrZZLBWM1fmH2m=|G5g*S>O&o^WS$SaL4k419*`_D3YSW$`04o z;?PdDde55bDEXf0eGKY*juZM*g-!gW32k4-7ZyLoqWwq4Fa3Jz?o}CNzEoFG_aSr^ z^M807lZsL#{^BS$eW9}R4C;Iqzi?1pmp{01Fy_2YIJqORFmX}?vy~ z$~AN$6jTn1r*fFnG*ZaVmzNz-AI2!(xVqvVeec^)4xt*A*WYG1--c4K{?nw-AEnWt zy$hG+vR}|wBc1J4pF)WSH=c5uc!htY{P)4ghdt%YyngvmzhTn+A;zs&O0u-*x^qub=!wUHwZlWH!`PtG?+E$T|#ucIB; zH4tcz9q+BEuFVoL)h_j>k4iD--e2mkfWwFd5!JRU0}$((M628U$BW6F25phgzn2WC zwdPgKM=w^#qcPW=T8C;JtdE;5b|rQ5p#3{)cLPfK2fFa}u?o9`ar;rD^f-e+!E=X> z>ipW{<dc-6GZ+M{U z-!o9Nv)d~tu|V=?S))CL8panhm0Pg*H-$!Z{2<#z(WtEEW88e}*PPg--v%P#bv*cto9U9iB_t1qB zpSmZU&eEruyZqS>T|wx|rlwkmqd7u;@lPa1T;nz&duyYERh?06O%sj_q*ePPCTl4n zvMrn0A(=|)(Uo`UWn&GM(q0sF3Y@gf$JuKM*21Se2};Q?4x3&#In^FaIPY&YkxOhr zN{4hf9X8)MFQrDf*w3U$hL{F$416sa)Eb>na6A7s3Eq)eApiD9*Uj%}rK^Rl(OR1r zOyzHEG|_sN0=OnVj)55poJ?W68E({`xu2){hFW>#gd-SZ^S`pPxw(rc5$ zq#n>3(m}MMmUo{x|IkNQ<0nmr$lO62Tj$T3p?BA=oBsMtIUxhFdMuclxs6w)RpT`L z3^K{M_#`gx)J5@AoU#|3|`W?`f5oo(~ zlOYb@#&DQ~!|H|&Vxk%w8fn$XAF>;MhMkSUJC6#r-+DeUjk6sn5F^lJCo4|TotxSl z)IP8kJJK@FOg&9lcPE27h2AHK|8o*Z!{4pkVpbo+;GFxWcS>sc?HbPv{FdZ0*bQ2~It4=@sHQnCm$^v%s@ksojg$U_Y+qJ*506*! zm72($O^MwoWzXWB*DDxc8u}j?Z4`~GI}FW}>*d^zd;L#ity>t(PRE=#YP7=2CY-X{ zOB~2-#;WW$LLbsLl(@h?oYj+`f40WUW*xgfL72@jSQBe4u48;O7hwS(C-i6NuP>)r z@mlsgF*L$c*_uS0tZgM`>J2lVr*P|XnrPl}v=@gxek$eFZeI&FREo-L{RbBj)yzLJ z-2Xk^?9|t?MVF%3U|7(*~XKaa=yL(j3)aL+X6lm?S-@mIM*&Y9-a( zc=mqe^q9UW-|rp7tU0U>6$BZ3`pa;M2xcq1d^GXModj*J(YYRztC&HAurioF!KJXh zL`e?H(UbU4mu^NqL%8(cxZ_zLnhvL%P_+0xsnnsN)7P zW~+_F7Q33sl6AbQ1nDL`#ePhczw&C2jZe-t+%~GXXAln-BD4{N_AO4UYLuhp*?xm1 z{!Ry`gB%`OOYSiTURsNG@s1rCb&#qnUB%fV)l1Q}uM z*+!B#*>Y7X8wor%lsMmHugC*ifSXz+%+rf#QB6ZUkjzYi#7cCmnVe7L*C&Bv!>Z-1 z>^4`up($_j^;Y)vEihI81OupDZen<@3o3J%du3M07ha|38h%M@)jJ(&?7`bjg6Awt zp?ezoB-;3r@jqqj@Aj223s~KgxU?+WHy)Qb#VG`Lqt3jW=T|+@DJ*FU$ZcCxi4a&e zu%EdYDHhL4g*-3ZYiXYds8ouZ8WKmdEvjO9FHlabJ2Zc+8wkb!V%{5;6<*TyEIV%v z%sfZN!FES#yTtVI84dXo5dn+uiIw<^Q|o~lsTtcDawX&Me(5p%1M;Y_Rago$zWEr; zD@K+*heEyP^94n7czcMP0FTZo(k=!t5olNn_tk6&NR4P<&m|v**v=$+VBKjx=1p8* z);oXi?E;CxhVIIXbF=th-&QzqV$~|)j-W0!4HpS``j46I`gr59@vsfEilC1On_*GO z^Cc&ZVnh;~F{|1NyRZlzWUO3Z)TUSFj3&WxKB`IX+3nmQN-PL&g0#5*!?&)-yIT?c zidjAkR^2HvPZh*MM1moD9nbxpJGoU%UPXTR(k$I!xrg^=I{r?He@p(#`vA19Cg22; zbF0=XyR}^cnl#=92PqTf)BP@A-{o}lO;4V4n8wSsk$KWLlCf>y_{FSz$_t?rGB&8~ zcIIH|7HiR*O@6j0aZgv~ShD37vFV#E0$fN@Sm>c%@@&aX{8tp#ilp4LpGCgxSZ*FI zBzV`y)^!SAxHNLeeC?r0lSi1FS~c3n8BP+_f$a;Zh$W#Yi#6KMkY>>Whw9T{mVe3UaMJY zcwI{La&4fWKY@(-?eUW>6JEO+Cf|{PBBHJ3`rll2M>2{x-SWa^Y~dRqeCW2#g=cR2 zv|h*N$HCO@GUpC^7_;RN(iCQHd)%iar!Sgm{m4MQtQ`7}tyDk=4W(Yo)T1UypfyZBm<)haJTF52+1@n%zl3|%2x2X{U5Q*!%3 zwBVSO*{0%_MJAOo8hY}GyN>NHfqsouEzr}3e5=cW>!CgPd{o2hT#4v5uzcQcvI z+6FCJK1tBWACIekkbGqli*NOJ0CSB^zm9UYO8cYlRM_lHa=G5)RrXwKLLv7FNyaN} zrFqME25G2EaE))LQW%r=CD5_&ZA?yXJjV+^zKytZrh=RA9|5+$fJccs|M>Y%!o`q^ zx>=Zl0I#ZQl^sqGmXu_-#0T~J6C0~3q{&2LeL8t6HUTXC<}#927%lX1h4J~NBgVBi zC)@7_=9yGH#(bclse)0Wc2Yz*t?-T?jo6~vs$=c(%Z+K<7vwrw%;^6H;ECP0mD`72 z7_i4AWtu;4H^yR?$rX9X#ra?!7;S0sew>A7^PR-d(%wFt_c~%GP~$p>GD|0M9GSc< z(Ut&J&GBYQrs$}=K+n3fHH(Q~So#bz7ZG)*sa#{lq{-@vzdCppVxOC_v@|em_sOE^ z#LEL zYY%+AX=Cl^a%DdaB_XGk0zn@BwLw-%tJ|&E%@7_2I-Xl>>#FA=3z8SjaL?ORXVaRe z))6s{SuMXlHpM~WXCKzroz5{MC@mq2@zU(VQWzQZO}g{j%m<1yXTUSPHHRhmKVq(! z4SpoE#^DB{5tzmx>MktaG0ndBMxH4~gh{Y!>H5XtVZ-5}mKZ)PGU)e(?DSv={~Rsx z0Zt&@Ya>=Ujh_df_}0J9eBxtT9}^EO@7T_W+GOp}|D1i3JHoK&Is`wV4aRg~EjO^_ zf(UV%+iB(aH$f3{#$8Nl5X??}*GOc%-3Ee;=?IP@7pTIOCbMd5s~ya!kz&WzhWQcNwMklJNOT zDrwax9=F4Cr`yva?mju=C|sNo6Mw@})FIvMy<9!etp{mW%$OqhCyP|`5fU3;%)Q}T z{p>0Q43$OEEwVBA@Sl9{QLxa6KP_g!(Sc+?TgE-7}C6tM@#l`C;pQq}* zy+sh0DPsnkdzLItR?#{Q+Et3!_4~%6xWy*wGw9!>u&WKEmN6B(U8H|=T6S)bIo@KX z==1oSEVjP@47Vosb9Kw;|L2Z+Eq*;e#M|-3=PIZiVn9zjE1XF!O_y{&K9j z$J7?bH<%`uK$h8)EP=f;RzdYdLE|zT1p%!JeHX)AiUvAJam$gR2aktE&EA0BN^aSF z^#nQrGDjrlwJ}U-0l8>2mt2qp)*p-k>D%t$W@Hf8D5cBZ#QS#r3M3F(0oUsskm;bD z;8~x*$ts&VNS~;D(MWARliKzv4AeN=Z*amoNSycjRg+hiwKhN=7C_9^QH4#y-NiZd z=K9KDzVPcC2Nexr+{nS6l45eLu zta`|xls2@IUq^P-{T-Qn?sN*)*%PzsecW5_XPn`s|JNJ;v&S0nGJXy94K;e=tNj8= z?u7q+{hVg#FOUbmt@p;pPA?tQavlc3h(QRw+@~?8gLN}x{B7FKF}Q2q{FHC4IAk28 zI-JO~txZuHqHjNL8v&_WEu4_CS}$lK>$WA#5iWyw@HBPs@4Rr65nuFUt~DIgfCrGe zY<>@NBV8>WHSgxpT)ubbYB_~o-*~(%&dexAusH3<-0_tCL7@Mynu7^GSST2cnO71+ zARgU|ubOtlw6KRv|AA?WnceMJIQt77z_N_aMQEEF$K7Q`oE~!C(l0MP+aDbTp|$}s zSj#PJdHj9YK3fpPN8OGLXu6I5Tae_fr#(v`#MyDn&Mj3t#cle}GSU9?et#BIZKTIL zWtoA+Ki3GEvY&K4Sd4Cbmn98l06Qi-x2S`6!f`H4we)ShmzWm&x-|%yK6Us(7kkqK zAw_MhgcBTWP%`^QG1>p@9Vx0VCP<7GCK@&wiC~G2ijFVy%am`?ry(-FK8)(zWB<7| zOC)hTpxu1DGAtIa{b8W=WUcE=diPe&>!L5ZSL=szV_6P)pLLp)0c+?2Ow_?ys|P2*g00OCfcq+od}l zd@v2hgISO~v!ud%Ww?ex#!oJmOdI~gTGHbdrtg^TQ>R@+Vh-a_?Fgk-I{lDCT$#!| z+TdcW1&~m~s3krX>%|UFf5ZH1u!Jc1+$&90GaLHQ?momZvTP!?7sdNf96krKb#hJT zop!FX_bbg$gS>yb?;Au2GaM~v=T}=j)b?YW8c*=D<*YAxsjAtJ%;qhL&IGo9Q6rHd zvA^gNa?L`;6Tg`6etqMVN3#$`PwLvEZK+y5TcV-{b>4qsjQN7lZ>wg+um9PK`7-vU=K}sE0}B~gWGAB*{Aa7%D5GMI7G|on9o8;1 zH%#&wyMJc>J5T_2v9Ct9f4UJ>{kMs`3at>AQ+7E2(G|>TO92o`v|lvW{*Fp53;><~ zbJPDU!T;=n|C)uYCHBIsjjn6Sd%UTf?w~VGkvPp#V)ZF4(QE%D3qLv7Fsc zIf>J_<^P2WS}5cT3kZ9L0EkgfS$7*18J9y3H`(^rCg|z%EbqAEqVu1<8&1ZPMt`UJ z=V3GV-n1Fagxw|*z6^QYu|zW^*=UdGfJ_dwiD z|Km@})3RjUc7%;BS^ zw0up=*x}p=y#v)>d%ttru!ecpOjaljV5ExwyWKnQ$!0?*Q4MNNQUaZ;W~AmOR@w$e zf8;pJ6;+)ZlrDW5);(R&Hz58bTbA>Vth_wPHGE5tzs z%s%y38NxOGo#pa_c>6f^klByp2UtGSBz9^vu-gMQHSwImnIv+2ko1GqR z?E{o;^!IlUvqpcy(r$6$;g9#Iv%+Ot#flGE4g5~OnFu}DP z6ftSGBWm-BM~~u$A-e5)$}MZE66FO^@OCo0Tgi=vh~IaA5%#vRf3jZP=(VcZB`=c1 zYr}_Yjxj@{?0O?R;`8+PGEdsg`2}<9HC1CEGcDUCur|8d_QCPK>UCfOfO#Vax;N6u3^_ z+QmOf$vufaemydz{IEoksWfGnjcGz+f+Uw%(>_|J_4P13``6)p@@$ zhwg>;ff07sTsT1y19@tIMg!OU^E0`?3zu_+qKG(wY}3!2mc6QN`!+LBk63Fn?&*J% zRFKlxQFMhi&i7?1A(6Wx5J8V307T<#nk*hrs3gnNaO-Zy*U>W4J4r^t%8Uz+_A#2) zg~JW>QP7KzChi*iW`<;2ZU&>PaUH&mFXA1QD#hUSwFcgCG3y=S1xE|&tm@Jn;yXM9 zf&T49ac`XtIF?vq+^isRR^78-vd{JQi!^)kL{y#<*Om@{Q0=wak7Qnt(Y-vAL?48d zh+@u;_lnNXPDY0cbk_jIP%Pkjd{_r8-UvXEN^S{{y7$YsCRMh{!N-S#uXmnKboCu+ zs`7}yD~GG{7uy0FT-e5SG6%Z6HM7&y7&+c9PK|2VmsO69=U1+7RDEA1Cn%q}wtn!V z*!{7t@^-67Z{vIzERxjC$jK<#q=WM$mru3&52S>GiYfUf-m5R`og!c~3y~>{-LO7E z?@+s{mSe;D`9a-Do~>;MZ^{EN^c|Ba){6Uf185AmM_;ye&%fuq!LO_c!dHGr0j>XcRU_K9{nV$L1 z%Ep=HjXzPCQ2jl_mhg6?-ZV$uosZO?HgBb87?Uh0NRa9SguBM9sGSoNtx|-6eL`k= z7)D(L{Up<=Hdq-2H;7uZd>3Uf+=PhER8XRUivlEMbr)NS=fEXS<5%4mXPtnvyXht(KM0#ejCIj*1g!^W(i zZ=?~}s%li|xt8&D4dIRZ!w0jn#HRnc529$~R*j~x0mtZA@>y@X99M~rF}_m-llk;* zMLyIOv!#LWHY;j$v@xTVF;%HS8jPs}BVz*r*%~`d&GH83tGQ>(mTUnRr@z;1%F5}` z=I|f^DJt!drrDi_KTsOVjeie>PWtd-Fko(v1l@krHBu&S#R~5WLP+$__qDoA>y&!T z)$EnrhDBS+&g`w7NEX|5dojvQIQjoD74L-V@eI{;i>8{tyxBvKg-5FMHWNk(Gx7E3 zZd802R>_MYyIRrPz;W7aCC1Vx4s<3|`8>BG7Z?N0vXJQ7@^c@Y|74Ijk4)m)Z{yJo<_G26 z0CcGtybdlc@=1+##g>Fpp51+KfO&+G?9cN9o+m1`NM`!BM{{KNQ9u^7{VVPCFV@2u z4~g_5os_ROu^|Zvy+fNOOGX1dU{!T_n7m25>ZVO*6LRTLc zc}(S@JlWrt?3`f6jZEalSI`^~QtAF*=}Jng?+m!kGU&lrQ6`(F$y~Zzf;st%lSX_^ zn{G9Fu~X96Z`L9ag>G8*GH9K&!~ZaH&0gT zJBLP_G!zy1ZzUrshUB`PKBEB9TWX66LGuwIkovur$uu)kZ`(T0*G?z?b~)w+IM%i#wzAa4)!7pLMCLq6L=d;x4q|@#GYSn&yfI-22>?& zytystS~px;-?r=A+ORZ(J;5Xxq8k6Uw4K$UH!V7@I(-<6F^rsm@^Z$8T&OZ;rtyg5 zrTw3Ha>c~_xS#GV*1S2^tG(GakKMG>#2@Owt({==F1|+7#kKvISwrWB!#~72^4Q!% zXD=z>L7X}`FOUw}`V|Yh-#kvW?Xoy6*JwXx(xVfBPjnc#qH*iOyRCJpNG?tF+VgKU z%`tKY9kE8*E?b`MK-rQe6JwBoI5rCPL3&w0ju6Me<>^t49Yd{#EZ#Vc&Fe@<+pcfB zPM2xvaBl7G9wky52u=nUbu`e1AVPk zW~MKXhkF_&GSF~GBQwOK;}&UX1|EF*0(Gk%TW}0;ks+2X7B%R*)|&Gd=N7yiwwaTs z1_muk0<2Z*%tmD_5@~KQgzo-nvH`Q8erd}sgUq21U;4RNdlU3VwbR{>urK{$?>$2) z-5o&Ql_2#^fcZCG$*al>AcKy0Z1iP@Knj0R$*7`3k~X!PVw%gVm*oruM``2cC>bL$ zwMR{VWE;5EHsmz9K-}NI_=DR6AYbXz@akw;J|-Fe5U>5ZDG=r)3Jx443VSR*vzQ$@ z0WrgfQCh`pQDA!>&!}mqZm;I1k?Og~Wn$ru&YoI8xR4-~I-O3!#p-@@JcZmgY4WIS zmp67WHjIcrQ=#&R_0s7kAJtzKNy8;%Bh)fz=Us z8{*7)&~+mFd#EVsdOR}`V;)J*2GDLe`!7p4G0 zyE}1cMuVz`Z?u8e));S?7T%%Y%o%LA_}4vz-DbCKoxg@g@xnEU+!?e#o+OA(g z)KLLib5e?XivyF7NmCn*y;47A#iQT5BsjXzZ$ww>!;?Jm3jvxu2^3^+iwxQe0h|7f zoto6h5|v9k)VzPp`h^FhuhV5Rpe&V`8PNXuC?4t@eg63tU7~*AIp6T=j@%egEYfk= zFO7V=lT38EfBPxADE-@w-%)%b!sA}}S{y_eT(PQLBo_X3)VS>T59Z7JNI!!^iT0$= ztE~r-UJiMD(5h_qb<_*@uWJ(l)@HSNy7jp&47Vn_sS#5JO?K2HU?(c=Wh+YZGF3PWtBA z^flBY^foSsAeV@WTmPN~LkHA2MOh*(>HAkh#4(gY^&d8E(GfAa8W9O{a>=n>xL1>- z1(QpA!Wnu61GWo;$?>$@hFncf2^UQ6f4cgA=vujVgc;W~5}6eH==8r-Ede&`TNSy( zZ}J(KS25mmebTru>Y34f zoj9hTo(p?xaqW?1MraOp((mR+ytd1F$02%EOb3qhN402fK%#2h@>wwtCY?OO+eaPn zjAS`U1lmK9u#`2Ck&~*)aG*^c3ghAZ+-U=S5+;&7FnY+Q?f6)k{*ESnLck7|Mc8(m z$^y~Wd8llvR70ad=I!aL2uCQ<7TsmCdWhGNF8$K7fq2LkiK5VV(Om!Io=|S61p&Ln z7|!c>b+rEHrvKNhlhA^(ffEv}0>aeM?EG3|JbKw;+VEFD!nF~O>hN|BGoWM6ky3;& zbRgpo39G%u?s{JPJY&u;vwvL~j-dtW%Yq(c_ywe=IdOoe;@N?B38M{5 z(#Pr5I3IK@rAJ~Q<-VAtyzJXRlpQ!yxspd5H@K3hu$!TZkVN}yu|q`?b#&n!u{;w) zO4$YiK$-$y{fZDt`wQRv<`W z#kSyAT6nc^p)6Fuj~TSMw;smuJ6enTcL=qWGhG0sZ0-RZ*d+rEcy5Zq(B#>=eK!Z} zgVO2WxcX|sTzZ>;^nE~YLDmq2Oj0BE#4FBxON#8;26F|eb6pG zSl&>+T6b~I`R3cZ@(`q0iCv403Gl@q69#qdAXZ@-li+D)Kw`aR&X`|q?WG-Xp#h+Owo?MQqCZ)~Pme3=whIWM z`U*2|^H@1<)ErC$F4&tK@sMAd_r479~w@6QB*1{HT$o&F3O8pSEl^}@B6`?F7 zK_eejkV!agRRPrONG6%oe(WA-O~|AX%VDCzozt9ekk^!IFXq_x zyZidLBZULS{_>x_$((-W0kdzp>}Jb!KmiU=C8T=u$2ofi2=^ZL9moCQo#)TS+%C=t z5fSRXPY;u4+4ho6Xa&{xEyYxcQYflFskOl)lGkXytfY$(;-Z* zF&xd_??4EI8;4EA{)l(r`(k&pSzm?%0@?=L4Rl70JII}w0D_-y%iZrOXg&LUWunIU zv~V2W3Ec;~b4Z43JoGI(Bbiw;L#8KLGdEl4^wsl=(cNX$_A`5`KauhcAkJ2_3H;~5 zW7{^u{cJ9#HaP&K#I&#qCyv;?R#>&iS?uYkd$#! zlhaBrLGWKF_8NNe6C{g!ons9*WzL^-(q-p&=oX_rBqWsmdC5+of32QL>cGkv(3i4K ze@xJD-RmzMw;OGUJGF{n(i|zLjnK8msEn!X^+?J@+3QLU(BZ!1Hc;I0DdfY#+qvmE zLXG#2(8yihc%WhLLm~i->FaC+U$vv!9+frL`J_e{qB&)TdfGXKgsjF$s?g(K`kj~1K$YZy>ic)h$6PFteoa=iL%aXcms(vQUD^kZ- zJ3JXLLyF5u!dvwG5;q5^O$)XBmg(+xaIR(s$N>yio%8Z83o?-VDA5(&rrdmY|NHZ- zza62V4x@Jk#0T6l|IekDfJ1uyz+dz-j{!*0XJls1`MCTq9d!*|*%MrP`4so|Uz6}o zh!d5zQ#^s&>I)FnFsW;lb8x#qP}S)6!XzH}t@efN@=j78q2_;)a(`*L5`+lB>T?oa z7p>Z8_Vy0m(=n_BIac(`G*tKAqv4^u%NFnngQ?GxbQG2ioLrpl;TeB#kf8ns$aj@5 zvsX5p9S4b$Jie=ZnWLbfk|HM{!Kko(6+jSu1edNqxRrJFZa;~G*gQGx(a}{yOi^&j z{m%85e-~Ov0!gTKONE|ZHM|AFlVKrG_s4&iF)gDNvwc+^-o zSrD<|GG4jAx{Ub~X7SMC!u0~fO<-=VbFDx+e%o`zeiLwUAucLgUKc)KPFJ=t^RYn==2cVwf_DI=XsG0RU>af zP3PsT1=AM3gcI(gD~X<3lu&P(X@^~I5C&v?5@9=R$9WPnyuVw*JoM{qpp?U2YnbeK z1137%-8mqrxyNfY zhF1F$-duusa~82Y+NjNfl~8*W6~{kK5_7coBIbB1Lg1H{+l4-h@YdC4=jC@#v=+}*$PST6Txv26SJ%OK(ld%U3)D0nnay7#_Z}w{ zEBba3&KSMB-4qmqMOSm`gQ=0`=B0j`5)%_wyB=@iK)pAhyIv5e9Ya$0-)$<1O8P}# zsr5n4Ru`Z7m|o@HmIndd>wE;%Z1ba-jCiVE&tYJ)EvI(X1%!CI5zbW5_~xYf9`zY- zv~&*VFO`c1^hu)3yuFk2!>^dH3KKA2!>pXo!&Oh)_7liz6qF?=9H*ftrau-q!D(5W ztD5{c20P2Y*{2vL!|h8odr8+{LuY4k$9ijuIG<2HX-$g|ZLqv}9T9uv0r6*iJHdt45Y``-|1tSp;X>X|IY$k$ zd6``C)xYg}|Fw2N>?M(?Pmdnv?I-_tbD*H60*K~`C;oqV1Sw?JhRekNpTIBl8L+4K z)eb$c_=iV6zz|E8Z~muLQ~nOH;EINS6u|#XE|CUQlG0B7V7v4pIPZiQ0N^5>%E444XJQQxBxV5KRX{%qFw`P_BdobevNv6L#B@)=Ths(V?Kz_tE6(I>f0%$ z7U0{(BH}WS^|Ws}+?pAcN6J*sim3TTY$wPR&7rrQ$|R23ft;tv`D|}cTAb5%S(&^v z_CT}QheQ6IMcvuJ!b#o5nZ=3W+~XI++g&2qshlH*$^LbP)Y&@UkVP1ChG{?rnH#KQ zi!DHI4z!=0L>(`C`amUc=KXcW% zfq*v?=vW!+J6DH`phZ%VdZMoyB{^$aKBnbRAS+lqFFi~7<1r@|54^~Ls zWJG_{3m!=>gL(w3lr13Wjp@-&RcwQ58WDwg4Z@F$du9E;9DyRuaO*}nn>-H?qIL<| z@2O*F-n!Vtasr8qA~IcY6X(9pps2lpJEu9fF2H%ZrRBW#Kr??qm}QS-Tkqk$}OSa6*Q;4;7*RG8e^sNVV1c_4Vc6_|6BSE4Hhi2)^t8Aze-JQ-?Q zcpRi`tkCtzyl7Sv3EbZvneO1JZYSKj@Ful;r4ks&XI~0(iXKov9f4e=ipGae#;z)R6jMMcn#FysHF`69EnlA50vKs|s z60-g*y5rLx%hM}xaSHEzbG*Bx#RbLL6%LWJUZUlEJPArs#J>w3&Ej>kF6QJtw2B~S z3Hv289z9KEzO|_!%7djG5$YB;bB8epr-5+#rDMie*Z_F4#d>zN%nKc4DSC9}f;Sea zF+fx;i3Pt4^ZLF7BJ8s>+5-(+1#*vLJh{OUon_#hr6DECA3H9x?kd~&^?%tWWzi88 zCq(OMv^5&o2NB!IlV^}Du1TTvvTxVZo=)tHK8oO?tH|%8%oylV(O<> zC%P+o)@sA+xkLhQQRY;n7-ctD(RJ`FUd|?eIsP1=RjyDq9Uof$e1}M#^`^u@RE#IT z9W$|fGi_RF0i;vhDShe$SvP7R-(`$Y&pXDCugIE7x*HlFxkQ*#8Fs%QC}Z6l=D&-} z47I;rq!|C8G6BgJU!1D)XR&2ne;lY0JWKv?sUpuQdk4sf_>#|QXMF2CfTkS(V!i5Q zy~+%1lRYg>>>#B4z4ZGn;-L+<3+GV)u#EKOJH$FM%{e1NTT&)E&!6pajY+2tVF2A! z46^!R;uV1fG~_44QHMNf*UpPQiB2KHGoZe~SmgK8#@-tksES-j^dLlcg!G90pa&WJ91xo7qz=3vlK+vca&ekxuAZqmCOB zp=#0owSYt!Qtt^`GH-Dr9yA6p@2$H5`P9sW(sE_jp1MU%|AKZCK)$qEY91v!{G`h( za>hy1z<}Fmz8wpQRJ51<3=q13qVAGI?OO9)=>8COeg2OMZ@m=Nq(VFFvQW0itkd$U zA#CV1YDs*&Hi9>6Y~u4{Xd<+bMQN^Tln5(@SZi$DN~N*Zc0SNt*KB#hhd%ycHS7%2 zsS5wxzj|qm@V&yr{+iF}n=$_CYs2G$x)@K-K<7So~VZv}k zjcBm*fJ?Z0afdM;38GaSa|fvxnp3u)kksF6;mTTL}p2->N5#@(E*uNkIR^UfU%=QM6CJw?*>uihhk%j8LW_@3)C zt2lXO=iTULd);XdrM|BktF(!C0ogr$6fWt^e}d6JY03P+$@{0{hnc$by?loL>pq`e z3QUs`K=EetV1Zul%~%T2N22ECYN`uo} z$sI_vP#XtStmMl2;m=VjKdWi8S+9IpokxVXl`eS3U<-at!XQA-5uI7KCRVfc^F;{k zAZ&&Fg%i&$tK6b<;S|dxT;HXe1RB4!m+9kdg5?ASYE9DP?6#TJ2c=?y@6CDLI@|#Y z#14s-+8h^N*4or`6U}YY`xdp{UrlT`d0XVsomMDu2N_jgSLMqjV9zPsiaQzEcEsU3 zxVf}Nr^|OTf-Q87W~sEbK25A=ju7CHJV5+rz=`ywR`9MM8Ur%0tMh zIU|GxKCB;cRA32emkR6$p;_2c4XG}Sa+L(uJ}qM-M1l)lE#UO6JJ<{h>1-WG|jd}VXbWp$p$GyyVYuPp2-!erjC)}gk8oUS4{ z|2YX}&44h~8s^}8em?B~R3EcH4OXpX@owN}u5&5scuD!Wfsl1SurP8`x@AqU-XvQ?iTjd4xaGL76 zwAIQ@`Y3>Q397Ed&?x_)>Fx5(T**5c_vSg84N=Ndr#;5-3YfNz;tqT^EY&-OwZ@ojho-Fuv-sBiN}@i5IoeQA>nIIQ!Ov(gdS*Y zD0!u7QTfW{E+pkOzlrz|h!Q4(Q^Nbpt(G@N#)7cuPCD~m`6EH|@T|Hc4@y$C^8Imp zZE|tuVN+axnVQcpRajAH4xT4fKJ;&Q7-RKMO~2bv{;RwP;~Y5HedaqyL0b$8Q4Fqw zC3x7=fqo3I8i)JZPYXvygPVjQ`O!2~A`*=?{%aJh=s!jG7@3YO`%C0Ec8O~bcU*ry z!kSZn$R59ekDF^*5C#P6tV!;+kA@4GGX+};}8=9=809)&+TIyDW1xv}hV z4c6Ru^S4c#Jn%}#uayaN}?GwXtnbqjuu9WA8_WPNXN zQZnh$E80S7*2NEIG_7y;L^1|^x5Oq8#4-cF)WLp0wL61l?a9!fIU_wTJ*ojOt-z;& zLnu;jSj-F(^31C-w3QGYUppfjTfdvddG2fV5ENXI*QXay;T}AgcH>~8O(q-+BUp9f$Ly~}NaL7wLe`5cQyZ7PZp)gvqEL~jK>ER?GDJCzL6B_M! zJ-P#XeM$VdyAB^7yx-QPo*O4DwQD4V9UcOXgadvn;%xHbEFn;G#)>A7qdPD`188c` z982AZ$m!3<1}lwN)m`q&^4NA0nhFpG+zbBbz5KPYxdN>w;a8efC+<>af!yOFv(n+l z`Ka`@u^&1u!zCY&57|o{0qxCkFh$U>?nc=v*uTOt@TxvA6<>Am$7~ZTPqILLS)*P< z6TeAYUSpjxs%|+bGFIbpDgV6T|NPwk%a$$pX`+wh&MW@df`q~mW33c12frW)LGe#M z*ZZXAdh+*Aa~HUO>9VeWR1c zj3k3C_vwn@pn|1JhU)Jr1hIE-TVYOiB=cU zM@?y;2-_~{>w7cDi?2cow|z{O%-LR3C0rbqv~!NOVUrEMaeopL3nUbFWW*P0?N=r4#;T$pdQaYJyTESy&N!!Vd_-yy@!7^SjF7jRpQP zgx^^2?BN7R^Vllj`O{?a1tZ1fyPxeeyAba~cm31xT37}#I5j#|J3u{u!Ns?(tXt6^ z(_iPY@^jz_L?AWA6PEV6v(?|TCHd64lRkft^sEdF-jiL}!uE5}a1uXVg$eG2l<#&8 zK$DxFWr=vwAOz>Pvn5{z%L`f`g*d-a>vXPsXx=bTw#gF49N1rp@22u$LA~O@f-(*@ zc~kwD8||Q_aDk43O3vmmBJpH_R$BDV3zPT$6DGGUr ztpzCux>@Irp%-~Cm)n-iVo1oob8d;MzFT+elG+S{Ktfj#=uFFhLr|ydQ=~U~hHAedX z0LA7JDPNYqs`Wl=O~Q8wf7JdIkA?qGb4G9mm9UxnSzIY-0??OUzu=LUgRJaSO`dg>JSQQ2+Yrk!cc@2VKxF_;b&2>&W3pn9?~n zwJJ`VYX%N%N{jubR5EHkUy>9*7WzEvtzj8>v8<&s7AEx@Km4Jh%kjrYX?GcAsz#>3 z>%1Rg0HQn*o>^!52g%M1h%w8jlh>1BwaXz+I*)^%*+SLFjwW{I7Lf;VLA>@LQ^mQv z=;cNzMc5E8h4pl1Ty&JJR8EKxsPfvJrYnweH_E9a?N`VQrM8` z`vo7@HaUw}S(@0aq+ewM=Z@xf&r5CCus=yj4+B<>>9`(NLcH1+8rHGChK#qU%W2_n zY13G##v(=QcKy^$ZLVkWXiNV#G-6=!QEf4GYLyxHF@KSK(W_?DzywP*M<>);{_>JA z+LV0JR6J(Sg-W>ToO~(3uSGZ%GEqu$ z$IfbL)H(I^*X1E!&2efjzFM)ZxRQ>5V{>+#-q0u3PZ;K@cDp|-Bak|k;okLe45AiF zY8kK6nA4D?bSE-B|Ey1pu8^vf0r`GvPl$3ymfK?ju3OFCn2^!OA*Q%qtRFW55xdmd z_IocZbqlC;1=P!b&o?$6zh!dIuEf`Wk>#&^q1+*|;RdO(h7kI$%iVZY*gm5lp9H@4M{D%w;abE?39Tm_G>q;ssec$DtnY zJx;vMJfPt;Z>IRsvB;3s!9?tt<|=Z{7`fBAL9-YKTte192V(^LJwXB z)}t9SSp7Ux`6qHa0&!clT)#*9fF4K2V!c-9*I7RL_@+vdD(3ydhVg0yPL>k;@k_lt zj-UTaduRR+RsZ+#R@IeC_MsxeprNuaS+d2%AVy&*TVu$+WNBJQm=Q@sMq~yFGmH!~ z6Di9`BD=Ddxokr;vK!n-*Y~>b`#-pUxqm;8$9bG{KHK~CdcB_~$M1rTYlZ2(m;}~~ zbB{G{8S+0o6pTtW%P>9pC18e-tf%uqUY6L9pca2Sqs;UI{g}Kmy|?7M!!M_3OunA_ z`d3E|cuuz$*SOM<^&Qv>13d%e!bn23WWt(^?D}PxE24f=UaWUXW-_eSPw0zVO z^@7sej9tx^gs62It(IX?nV5lkwcGD5WfU>YiZL z0f!6>*{{>$EoSn{gQW*ZMPcjrPhwWO8crm@h1&0~N;93*xu%=yuS;wZ{6Y^$xq2j3 zPvT>rrAOK#r95VOEzIO;+^J7kwYqbhpYd?w^Y_XHRQ|nCBEJ1iYYciMP-+&s049B8$rjFB+@$$d+n6=L;MKbJtvE z^zwvRv$FN+$#54%i_yjM3}!YYDRyqvbxma5RdFHfnL#E}Y*uz7E}_nHK!z|&3o8E9 zY0(3}q-x)q6@sX|N$joH+f4Ok=N><{&>7-xCzoHcFCJgjkt8k#5{W*`6s-le+8L)l z=c#&*e5>3!BU-`h&GOaDymORM)f(4exgia;t8tb(#4tolwtHMb*00q%2cna{TTPz2 zvVOozR_TOp?{1?@p_s1n^GwQ^_Iv`T%d|?um~!hcOeL)zZJ!JM0% z;gy+au~`xE;_=he(kw@*MM2xI_NLzUvn?i5lO)qG&sLfc?-m+IXv1b|TsAt~`bZG@ z@RK=o_irl}mWNH};gxCCuYOOZCA;L_$O(fpL|XJGbD6p8j7%bvbgnDaqZQm}VEES< zxh8u9!wEcDgRP-33nB|8o)#%$IMJ0AO}avjJ2XJZdmabWcUY z3uj`F)lZhz`XZsH{A%IEYf+}ajg9?9}E&1gu2oi1Y2dqjG=lByrXq6UI3;P?e%U z`Cn#?(aU4I4$&6ubU@Pl|9U%sx5VBK!ZUwd6UO||tpLi`nH0!6$ zUb7H)8TVOVGy5_WqTFNDl@g2`a;Wlp%4iNjw^~=#R*n1s&?yFTQ!b^tE~)mn{@A7W z4qLt)hY$i7e6`vP(cdcYO@QvVerAoFPtWJ)UFhg1Uvx1=bs!IcRUOe>tow=?WvKIT z0m83h!1C*6SvP%t)rr?>hdnVN1i5xxl+!i=>+>oBw*eYweo7zHt&hm=FCYsCPiL-H zrwJA~qgy(vvML-)E5K!<$O!2ERUS%@WuNaBUg=Qt>z^)xjsv_eq{^wT$0C`zlcKYWdM$LbN@$`vnZ#x#{VrZ8rd`zI(i^eG!$nsU z?fZu;Ty|-`K}Jgc9Be;ruXDUhYSQsGd~yM!0nhaQ|;(| z)DO2s&`}yn<`qt*orzffo#D^;I;aaN2Eld)wAxj`T4J|tUWu{_P%Au`XtCbvx2|86 z?L-LbRFE3*+VPB}eNn6NHGcAa3&h87+qZ(jAVC0)tA9WUrhgp(z2?lZk|$u%$RnO( zcDmE5?-bthP%RcyMI-)1mGGa~EWaFYMsW$vke;Dn=IeLs9z|JdRrDq}FYw%~)fXBf zFU}4)!I9PTU(w?o!4Gcf_7uJ0YX57n3!521r5t5uF)yfc&!OF_g&a*nGVvKby_L&BKIq_PJK6<&9B3D0=Ixyjfd~7F?MR3Kw=)JGAoZ*m zz6y8Cz86=*x(*)*>C36y(PLw5T+#D_x5uvf`oISPbMNo`GY(XL6IZS~Y&dVFL zFwVn{hC>?BevK*k%97Bb&vxx)ayRG{_nS%L5$_JT>}Hkv5lj-o;O7(EyBOken3g+Z zmAi57kueDtzSBl7mR4U}(Szu}L9t`7D1j~iRM?3BX7P{lC2iQx@)i{XrK+5_Blk;B zgjY&1h4%d!Q5B;15+ejscb)>wr2Fv3NV077kF>g3yUa=Pwdm3X@=5wYGFZ0RkPKs8DU!n$ zW1=yO6CM(k8EL^MmKqMT3RXVd?Sw~f(@&4cvSlxJe&si3E}cs^o^UqZa2ud#oCY)! z>LITD9dG|c4F4Q(09F}umXMVV0IaX27zxAQpVi)>FFul{1Dby-8zAavi6Q87zp<5h&Su3}R%OoR+o^^i=MP`gav|*Aq(|q+a#G zZ^_BKf*|fs)NUUhvtk#L9?!q)nO9^>Q(}&G{JkLPZ0Y^p%InG}TZc>(;&L&W9|}rH zz2=WH9H)O2Pns6i(xgef8GXu4x4zKgV^I06t{E}_kL@2o;6`Q8pDe0Hocl%q7ET(! z8%-Tm8v{x*?k1M>&eA7MOrijM8+5d-BlwJ_?7qnF%+A~5v}ouOAgPyPr#F|^8&O}b z+`a^M1I^rHWW=pa?iO81w;pjdZioi3uTfidP39Es5Jn%fZQM#M@}IrINM)DEO{dpX z|5R(uZw*_bzhOdgO9O$1hVV|1Bv5r?x0O(@ZJvbXKs=_|q)qx)GoA!Jd0V5|Tqr*4 zs7IT$=8YX|2_W6lIOKqO-`-hvI5~RUS$9Lc34lwjSVDL2JG{W2(;N({uWr_1538G> zCD40y=4NoY{^@U+a^HLw)9TL-z=NFe7VP~R1-4_Q!T4=lRL+%rWL_;xSoeXNMTzf( zEsGGq^mV(##a{QwWI0;7-ClGog$5 zS#sZBP81bPXLo}X$SRXcNwA^xw7Iri&%I{mKH~qTm1laS@AyoT%FhWUlS?g#zX(&nNRG{7^8Y3{BesieqfLDo1>? z>|wUy$>KZz_DY9Ib>Anm?h&K?xUNZLn{1~JrpU4Uqb85YnC<7Tal9CVjT)+s>LEl#Gg zp5YK=e*rO2tRQ)Z0Ef_~5qiFY#nI0}GL$iMK+u*D^5n-fb4P4!QF5*ghlB)RTN-^E zHzobcjC&{FOc8oWp$^a~8SLrQ>GG|+MP4s@L#9jcv-YbW#Y<0ZWP#ZKWLYXs0nuV> z$Z0a(KLhB_ak*6TL3*|8e3TsXZ|Eh6=Qd4kZY|vq^3@Fo zhM^Rn1{dKATmk2d_B(|+BWDuF&*h`z%44sGHi9CZoT_o3l_~VP3a>UG)iIl%A0mX~ z&0j>kjYx_qT@40&=o)G`5G+{R+w7g^yKZ-nHdBWD9zfiyNBp3yco{ z3VZZEFlahp6lTYKOKteWhV1p#vTNE-#@ALnS^4-i($l8qWTE!Zr#geX`iU_t!^STRPD)zH%O^5 z;9%jRtXx2p#1>)N{mi=tC}PsM`nIrXQxE=%cR|d_Kw4aP7)|H1YjJ;>U&U*@Y9&e zhiLXAfB{(`y6Tz=tZ3-zA8s};4w0XK`&4#9_bJ~$)B4h`7wVyfnOD1rotX=4d;!-S zslis!prEE?b~{6GnXWPq@=^+2oXqo>iC=W5OD+sgM<5VAC`))Bnra>jdDit%3iNFi zr+qWB=xin`Hwnv(p^3j`lCVE7BtPn-@&|yPC+e*N(Us>O`R8Y!_N8(gzJyLmE?-V& z+fVzS50g3cXHi93?-G$DJUSKR2 zJWTZlkbDf6rn7;4erJP!?Aw(u2!7Ru&*a0GhkW8}Z z`ux)$`dzr#fw76o#qwJuU03#I$kGyh^{>4k@szznoJJ=cZhSx9;NLJ^?~zs|8{f&0qno!?oywN9TEHgtNt(E b#IG%v_$DPfp{!*4CnuI>Hl~yd*Y5upp3OqX literal 0 HcmV?d00001 diff --git a/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_2.png b/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7aae9a2369716f14899510e488d3bd64125f3f50 GIT binary patch literal 27623 zcmeFZcT`hP6fTNgK|w`8=@vl2fOJAfK$PA=s(^sBP(v>wDk2@ESLsDU?@drT1gRlZ z>AiPCc@uvE-gp0bf4p^HS=Y5#CMRd+%*>hD``h1qd%R?&#jfF!;^N@oTzm0cL>>p{ zYzPj{8K27+!4>aUFO9$#F(YAN*%!jX)UsCQ21cg(I5-ajT>_vI!a}z`RKH`XF=QN?&YW zFzhq;vU=o*FXlz&o6l7*e8ZbqRJ&bUBN7}38`H3D_-6QPwmfTpE-y{n`0c~HDG_w7k6H7gs-5WOD=*x_^qB_I zdI-P$#P#`c=*m3@$@cCEaTIv`irS>bST}b?5BV4=pJLlCN9+V5D6t;OwjcPP+4gXGvdcK2gJOLP4Wqs8b z22xTu^x*SloHL$AIOoBqGvJRD{Ndo73;Kw23H*N({E5V$J^uANQeSwNaIlzZ)Sllg2QXi4L+Lb z+vrf+o0-C_x$XJx{kel1e8yg8x<~!z78?`3d#X~h)WYUg`qUhZPZ*!vJ3B@@Rz`CxLndY@6w363g^7g)0`7oVJHTvo>>)7g z`~OvPT#typwVsucg^iIpj2c_7j;=Y}hVR}z?1N7J{nt)?d!y4Q!L0vw3v`eP`wJ5@ z;}fQnx{V`ABYS<*mm)@HV0geY_*tPGynpWhpME)g;y)!-PfK!eF#lWfpI`pZ zC6%o8t%S|Zz$0z=Pv6Yn!vFsGw;(SQw&(wh#DBy5=PDRyeq3IrlXu3Cd&WVq0S8AA z=Y@!nqWzi0m`l;OM7J8KaDzl{2wjc;bcK~xQS$auD|Fgo%3|u9A@};oLWH!;vNZEF zdHbi-hxCpHH_lzW8h;u0-g>sSZ_maCa$#d(i;)&g!IMOt9XOHi={#G#m%5Oyuvb(r{%V3LJ&_gf% z^EFZmCp8a!S?<3||J46hp$YoW*I%Y*xkB2WeL9PM>fZ)LizELu;=ix%287?!O*x+4 zI=$iYZ$&Hof4;Is;YjP}-$*#A0aTV6Wc|TO#XwPUW8^5`k`J6rXy9AzU0tOZrg?1A9Cd?&&N6~K?n5w`R<)l zd8toSKARGia1c5i&g+opve6;7RY#&7j-ZK=S#RTvyLS7@cVaDjovz*Yf7@v6E*KoE z+La=e?@8s_hvdhYI*ooH5f8Oa4pGi);}~d_=3NyrK_N7o>!@cRbJi9Vz3xvXQL6^@f2O0v#z%5u6~ltIC5`m(ZsxJH>GlattBNiPRQdT z`ge_oSrOX6d(35L)N^YgzrEiu&c(nRQWTz5eYnTbKyEG4P#_%x zYt0O+4|_9JnAG2V{oov4W~SuUtguOEt66SaSUMHi;(tNIFb4ijB8>6EY+<6Kyo&X8 z-#d!jJu!!0mPt*%=`eiDc?X~QRU@X*M`m83)6To@BNf3?mp}5#;~J?C>tkEk#%xzZ zJ|(m6`)mwNm`10vx*2;1vvU~+^r+}&G(F<;#Zl(YWH=kaL&cN;HU`bUgXW2}~hNRvD2R~x9b1CUaPMziw8q6<3W3@AQh}r0_6s^S$S!Ff$aL9y;)VbiVh{UZTB*-| zCgZ7buFWwvoiDD9U5MGM+~}0BMtaddSAnIw3|UlH2*| zNKfl%1WkWL;%!@XQfF<9xE&p=CY8P(l5mrc?o!*(z}2@y>N7qOPk|I>udC}nrY#<_ zRX;ZnY)c{`cKbgo_UhTq9B~#qRwXjtg^gDs>$XF1)a1msQdrqDr4&ng4`fL~()e}C znL1ZZh7dd0X9@+?PRr-q#L1l>R!k73v@BWC3bO`3N#L>X5Ig1?=3j)od{gEiQ#p-a zLn?O0ysyn|f6GUHe*An~@#9*_-J5dUW)EVTuV?p}GaIr}E;G69O1LkHBd^WwjvO75 zB+K-=tPQ3mwZeMcl8T{ZG6DxS9*)28NYDOf4bu$H5(RP6^)svaG#yHNU4|hn+-4Sqg{)zZ99A78J zuB;<^wmxsN8gGAPHh@@i^=JnU<)&`lg3EW2UCy!8B_DMD&>UJ}fy@{q=vsb=x1Oy4LB5 zXsM4DpNxBbPklVdCURmhBzS5LK2Au+CGmo1vT+~u_d?324`g94ucuHzW9yLK_I9qF z>Ad4UtoQ1-hwQY^Nvmi%=uiBbo4jwNokleo$IFS&v+(4C(~Zo7?U8DsJ&OwFR2H=E zL)z7^nRm^+&>$-nXr5y_OT^U-Ci)!C^(EWnOzNr zK9!XE^6UL2&L!mGPJ_T+69;P>TX5XfgezApJ9OugU;qB@-dpKp=cXFW!Y1^9F>?PV ztzfJzV9A+)91LpTm7!@0&7tk)@}Ay z)kA&q@|lP-Y_ee(ji_2(xI-8HnvS zjc{UE*f{XqeGfAX_`?X9#l`i!>lhGGuf9ljz7oKzv|0kL&^CBI^cE^>v3e%xsvRV( z2sojBFfC(vyT2Vg87Tj9v+bt2-<#yONpE`Gt+bsxTh~iwG#FLfxS7}ztK>U;oS*@# zBn*`$v-AAUN~!XZKRvPU)BTQ6{0r&it4a)=j`La5M+MoT)jB^uqCb#my+Po~2nD|H ztA+2o>Rcl=R)w`&Lrl!|Cue_AF?SDLZ8PCw;aqN2#T~Z)9M~1ulk4 zHPW0m|-I<1-)_PZ%6oDq8{B7Lh<6ZWBNOJh$bBN(;@AnzOi)3w< zlHHEsrd~bV-jgCjOO}DbW3;rQLu;#g{kD2E@-9dgyh_J2Tr=?=L9{zAg^C$YdvDL- zfATYldEO(V5$n9x^rp{U{bFNw@oj+Ms{fhsBy~zS%>S8k6OM7 zb<6(Tb7^P0HpYUVvB5YQVeTLVsXEo~E<5J5cbE)kM z7vxOh4%u?k4BKN5@gT5|&Ro%R#Zbqdv63O%0iuG-ErA_j8XN&KSMJZh5 z9zJq>Y2lrUVWODD6Ysfad`2a+r2g$32K~YkFPqNe^HO%n*yk$I!)3Q4C!0aYxk*p^ z8I9ft)P=(&)+LGOX*dRhB&(cw98@7=WM&0&EPczFb-c6tB)-q7|9aqy*WctRL=+T; z3#Ts$x81|X4_A-M`)(u`*}_=wDwv zRaV$Tn#x$QQ}P5}n$ehQ5lbf7cD)7(?afWIs*~i9j)|Xo~4o>gJCe- zZVji!Lb=$zP{*}_rAQn2;qEksE%JFXiAU0#Jf&P1W@o2%XGcBRpH*^Bf>LI!dsTPP zgHp<>BPp`vQ#S3-Xt1DGe_yoyX{IdF#v4Y+*q{z6OaAF{>pQ^a74IzTlgH>QG=^OAb=-1l#iYwUk1ix;BS z5d<-6gBVK8LJY#l9~~&=&(Me>wIW{*hkOy9uIT-0+N|~^WI|ZuucOJrzUT5@T+hn? zhT;#_$`S@~E1WAB@4v|aY|EQ2?30I-8{hCfZF9yCf`=LXYB6uQ{;N|_jg!4GuZ59} zWB0?~_&Gl0GMh<)Gz0oM$3K-SNxxlMrq8Bs_4s=m&e=i`r{)nGUm?4D91;tLfN1yI z8g4D`NkA-%2f}KTuc0|NjsxV&iqJFB&Hw+d%6%)OZyVU}KH!u!S(?t`J$@Bsn)jk< zyvO2Ie}NH)<=D^0FUS}kb<7r#&Zo}2|6IgRro^U1e1hu; zHU>p$yP1u+VzMBm6G1l$f8g`9`UxD`&v&N>6GU;tGb({)?y!V=+kx=!BLUUY52x)V zGn1^s&^ACb$VKZK*~l94@BBWe{yI?9G(<@`_oZPByZAcjCOVv1FX2Ex^d&8bODh+? zqN3p^0x(*(sAOH@U_?wI8pZPU;MR7vWcwrP^G<^_US-TrR z^>GPUT=(tOZPEHa5R3Wk{I<)L+x>mHdWku(p)xc;`Y?vE~R@c3@+(rr~-p;2mN9zNvIJooY2er6z)+uC1mA86woF$E-r z^X09f(H|eLd2cbG`v6JfEMds&Yw9>1W4Ax@nE`QI;3vn)LVhbKewGOCmfDS`?gt~U z55n_Y0@UkufN&W;Co)IQ;mS0_$`=g)Dvc!2f|X91et&yL?v}4NIj_A%L7Z(Oc%4Nv z3EspaD9M$QrFS03=m`tvlkWYZhlE&40Oo>hq>zn)v@Q%sURSF25v`F8(Mi~eg(`yU zmkY`i(7;81hV))tEZLapxL-wPCKJIz({FI@WT6YjZ~nROO9J2OPr?gL#M;i5)p7eb zr3ZJrC0E#3j5?FpIzFBIFF?c&`!4_;>J?r0R~u3y1_h4xt=*d&D4kke4>nb>k+W%- zrtKrH-tHKz{hqc4Bh(Km9=w^}(J88PCxPE(Ph_;e58z5OK&hMc!%jdgXWrQx{N?Z4=bbE=jTJeYrb|fL&_NGSkZg-D>aue z7f|D~;{%+-_K8?RW0kr(EBlc8pVbmVn3k5DXSF%2@Ialur>u0V-(&y~7sh-}TN`f4 z1yZrRXg8P~A)IZP#hEcrasN6Zd*=;pDJ?-0Go+|M?o$iXKU2!+ERk>ekmH9C#APEQjW6Coi7m!CQrhyON53c{vb?IMTdTc$v*E zQ+n!KJ_1L=`reEFWSPlkgDdleQ;#@LI@1^cxYUnNtemwD8cW!=9 zZ@o^NaYFS9R)Q} zZ;At#sAUpsbuvQkR{_s#aG6l)r0RGraHZFzO#yb&lYqOxBVN@>z&)wDn*m(;--GnO z2kC#+O!`%&Q8VJS3=9a`uthX;eq68KCl~A7fH{*xkw0|iI1he_Grjfo!he(W*XQ%i z+#!H8%_D=A)BvA5^4XwASs9Bh_%_=fl)Hph73y>KDpR=MC45FEt>2@Bck$2q7Q{WP zAJZJK2izcD)IRNH-nGX2TivYLeN33xP_A0W^Yqj!YrzKXz6k0wa(|b9kMLXOkRAmR z)l+k1910e8n=-}6)1@|d7Z?pbxI4}1S~I||HPap)uG4i)3D)ud162iP(P;Z{U}i7n zkEBGp90sD9g7bRfJ``OUZymP3n?2hi)5`ChU(zcx%-Iz;;l>o@as+qf*{#;7P4~o87>2?7bNzqX8EK9 z`}~5zP}y{GdFi6K{?r!Y!-{4;=IEtSv(4%<#uMF-e4*$)m&h5FRp{`;X2exzYouYV z;Tf+92kaX8*{S2%^gXI~ulqG|9^9cUh z__uVwBNL2;0csF)+MNtDn`jK&0(kW0NR^9OXVQxzB=>yZclUE9iPy7?CeM0Dwy{=Q zf7g&mCU4bRXKy`7Jc{63j4o>DZ!IQ9lt!QPc@GrXJ6&Viiw zZP=e9%r8e+>fIk5g}*lGH+0T!n1Y7_-4OW#}?8d$2_)*=&dtr)3Ke=I+*a%AZE`@UX^ zc|-AGp2_edbxX5+znC`UAZlTCvz5__i?YSE^L#!$_S{jGf%Z>kz$T*dwB>P=UN)V1+q&CH2|-P}MX-q%Il&B!a2{k|CIHq#J+DgVOd z-==$g3z{Tbn}!Z_McG|;KhO@Egl?@3^VLb{`Sw(AlIUhO$+glIs=waM9rsH2dj%+L zkjn``Hq#N8?LrU<)RR~On3e;uewX9soRUtU7v+tTi8J}=DYp41-spmnwJbNo1+%Ro z6$5J|h3GnES4v3sb5lDFvRsDAr}A_Kam*S6C@LIG_0Xi;0{hcZgH$D-Lr3w>~=)bGra^PilBNo@SP}apmCd$}E1eE@EB_M>;A9 zl|1P|Sv>^J?$U6@uBK_d;)o&3G3ncBu-QOOx=`lL02CktLMYFSlJ>81rT-!tP3GIZP6fu^RZe00zc(KC8GNL`UZ8 zW`#=LPmP0{sq7@K#*~SQiiqaUoT`4XLFSwXQtWKHZQ7+TN@ZX zVnDDf2HUc^t}&rXy@a;8Qaj;+apRpM_Cl`r+Gme&bJwdQyRAC{5hkwq(>vTTm{R6A zw?3rlh(Z)`_7ftfV`ou-;~t?VXgEdhwljKZWF;H zS{$W=Sen=LZ!RXM%+qmwhxGQ3q$sXL3&GAx&!mJ>`hFe!?wcQ-9E|orMhy1NN`5x* zF)7-921_Y6_+s)DSvEkcH%ZaSwo01v;Mk+|1-vUVfLse zD4jVr(>y4S0zuhniImI^{M?Nuz);^r;Qeu>b}EmlNR@l)pATkp(WYC1rQ5g z>%JE_)D3B%)^_b8jn1}B#KoM0npZWFEorE3Ky;-su?^+RFn{>?9jEd;Ltf8dQoZOO z(EW0X#d?{t-a1OeCX3|$71E(T)qx>sRtuM*f{7mGQdxCRbHpvFKIox%K2md?5RSiZ z!t%^jz^q~{{mL=71z_n9Fgh-%#g8n402f^}x`XvcOr_lrvh$hN1V7PcE<6HoQWeHX=rZx}puXYY;viVlYU*T4Am^Zk?2UnF?- zo4;7e%^jB9ZewYA3~xV!(?<8*q1*Z6n?F&WdoNu;bGoTZe&Z?UCm0`k`AJG%s4<@U zX_rH=VOQtpn#U)BkgNojEle-UIc>Y*BhYsGtlO=pQC6V{=-~f_s+t*H5Bp8B(O@xX zO6VKI)#;?8-^5Anpr>N&hLzi+t_~2p*O4rlZx1;u4A9?7{9nn;tD5V!Bj1jc7Vs zl+m%i7E!M}In>KyElqR02d;G1C;eMb&|$SK=)!5l zs)X(EXZmvr#~$jfU>0`l{?}JkYGv!j+`o`Y)#@5$ytON4P%TLxmayqBbK7vM9&gvV zdjIFb4^Hoal_reAUhw|1e*SVb(wy!n%v%LdGDu(dugj9XkA2Tc3G^)1wf6ZC66W$z z^89Tr&H=}_XuV<%#8bb1?QLcrI6=PCQHTAYm6%wi+17Sf8?tX;;Rqk@H=Z;0XsHyr z@Hu#`0l|x2h&AzUC||M27lSqPG>XBDw&uD*8ccA5$4ajsFBQQXXW1teV}Xc-!&LRk zrR3+Ma~x?V#m*guF+<+>Oz`f$Z?bl5glj!*G|) zbhJr(1mBS$m)ed~oV6CpRysjVk*X4Hn$?EqZ?ZhV6fNaH>F;abYdWZ!uf&#azyr?^)h=cJ)| z*Lg0r7AiK^EU;^jS}saOm~ItV_p^n{St@H*>yUqNX02cF%WUO$Y%%R;%db;;GO$EF zor8q(Rn?0aJ0~4Z&FOJ01n%eJ=Z9w%1-?vWG)Np_by}};-dQJzgj+%~nD}&TF+>jP zRAn8e9qx!ptBQzv0dd%o`tTM8!Rhon&VX!5*Y@a|gSvp_A6V?KqHh#Fp|^I@nLlXK zVdkr6f0|sPa|c*(lwH~ZK)X@jt8QMI(_&6-vFTPDO6ETkU7O^LNk-Qoz4muvDy%t; z-l6NnCW}#huN@Zxkyi$%w~0jxZ%QAqj}-E4=;pf-aL(t;@-N{LM8q6T&(2Dt`Kloe zt5nDi4GYUK)Br+h?Qp;Ed7ZYgK8OQs$N9Bc)hGRT^%i-!#8&n4?KJyPag*w-7{;-B z&)66g=W2s<#i2xG<)L$#eNFn~hSz1ArpFAI>|OUr3;K5M`NvUQmI)LN6M;p0bD0C7 z>SdPp(*1=dhU=~CP7I14E@We7NGJpC9=4aEP21X9T@RZU;-({p>}zb;x?HUZ?V_z8 zHmo4FHB6?KHD{>E&5OKEvMPQ*$@h*9eu$oWyFZfL0AkANjgd`^>EeFJzMF4ccU=9m z=Jbk2xRZdhf~({t4Puhz5h`Z3-l0r+25*_2$8p|yexf5x%D-?ze0R}mH6`^G-Z7RZ zzK4aH{*-)@Zi@rO#n7qnAAm0&c*->=lBGr#SMkF%z+_a@F3R~U&&Cr>m)8gBKuBOk`^`kKq^)GTC$wRXE4+2`f81^Wm31@7x~s249R8vJ;siE)wqS<_AjB>U6Z2t_&w)ctA|ai3)>EJV$fBo z91txX`mJMU@a7EGvKd3a8pb-*V>$NuzTCvh-KnUpZUq@M(B|m_$&4`GZ=*!|$+yd{ zJ`u#^BW-X3^HLdCd7rXSnn>!zi2eg&)`6|>&fDvymm;pA?=8PI{Isb`oU(%XU4w_jB+3(HB2P!mYj3rk!ZT|Kg5V;{hrN3kFF(CuD< zf_c}Rl;j&G*}#7ck0J=u9;L1Y2;=7}$nf=m_DVtCpPeYMPyqKdn*hUDlnFD~kjXRoSb7VdQ)+M`@5$ zbAeSU*Be_@)$PTK#>7R$FHrVUQiCr(tFf??xok?U<^Lej>VJ$@%4Rbfr`gOuCJzLs z&KozUM*}_F0@!QGc@a#D{_;q{6i{8;tlwEvLZQ9-4K))WKSawTaE>|HobM$@$ znYc8aYq!z-g>2eiQ^?0>j0v6TK-rDu1xH;$RM$T!2w)s1&OTZY&i|pgZ5J*_DU*7I zN9|LkHELgk0{v35vz{R|^vSVfV4(?ExysTrq}yC(GpoBN%t9Rxn_(k_O^9sGj#OMN zFJ%t0lBH4mq~TWgI(M>lgRY}?Hu-^Bh5YQ5W3qsn^(?D?$`#QQ&K!7o2;AQ2X-Cp3S*by89`6N^gg-1Zba#(}t6`_^zL$HVndq=%J!9Cy1Krr!t;Wf*DV zY1NB7;E-|&EvG`&T7R%gsh&njfNwJTmdGzHiR31Hsq}%LW12^Qcyj(4DKtSnTuAii z&(pQEDvkCBPZ+tycL*fpyW`dSYZ4vfQD#Lizlbp(yzGznQR60Pe&I65+p<<6Wi4I! zVLsSOy4rRwnZISo-(<8jXsRMPx{M*R2m3hJd@jT0NjX1w)w9kc^XcfyisCR9-vqkg z0uvN+gYJ>7#wd_iR;IcDZ2>NQfVdw?%Y73vwfp{7qF-0OAj-? z@<-{On{18q46#b?RS9_zv4W4-v9`*b<_gDdm7y^mOrJ;?ROa1ig-3(8$Osd_FDT;c2G)<2Dx?f@A| z>+Oeg#~$*nARjhdYEVmUJux)Yde|MlbD|U{Ri}wzclcE2zuY1RYb}D+= z1bcpYlqNAOr&iSmyTf<&7W|~@cuK5Q)yq;aIO)m%M+WK5Nc2;GkU63Sk{F!8x-bJf z`@PxP0)KYjCqq<1#* zT#*k%8GSG4VqS-7IU2p-Apja zYINiHlWQ$Z=0K@fxV+_h%s$_^|ID6&NM_ZaYwU9M(Xn>r=HvWUmX0kFZD$?qCf0}w z$@V?($GRiV>%NtkrE)oPGiRU`!D~AYw?bQ0FbD?TuvYWb7~AGj#_e}D2bk@4=rmh%Ce6a9FaM|w z<^lvo^Q+krPZ%#zIp=K7^)OJr2Ag_pzNtPfAYK|Phm`Tz%*b|yx0gIT(zF|5r~Dt} zB_GezThU{)5#D`c?sX)H1z8{ppu)a$ITu5bll%^X4qC~fbdC~M= zIm=umLBi4s&(%4$thAU&u$3afdU?b-`7dJT4@ zj1qRaWI)c8&>&XfyIfpEap76csR{-Noxw0=?5hP^q4mRjWfw}u{cM4VY5;6vEdq+J zcmP%o;ZE^2$*$z+U+zkkDai5#GMG-FcEYQUodDW>ZHvbXje)-2#7Zdc&^bpcme-%) zbKQ?z`zReIZeYORECMyoQx8vQMT>OANfXq@^{!RM6W0ti=xwIx77&3iHoTiO5@QlJsP zHS=kC(0<&vXt8LZ-ecd^6Q6?gJxv(Y3NJ3Itj0q){d|^=*ts8mqoMn|Qe<%vj_x`I~9GOUu1= zqOcPef^)X+@~;C;AKZVHN`LU`Ws<-XkBM{sGk|4}pM5w9B>=bl8GwA{_uh^FLtS5D z4)`25-jMM-+vgU%SAx0&L*9S!>TTIcWnIeSrkJ@4zD%_mEU~m*f*Ycv@!C6xo7Fk> zcPv}am#>6N%%@b`I?kzdzatUaT~p19xsn?VNY&sm(qB=dGUpqWM%WWk3zk!=1}<-%h$IsE(z*m5qa}{_Y}S zQx$+8wz^nLXL90Ve<@>W_K?UV@{^vwx(M8UwEIdE>B$Q$AOcSQ|F&lRs_MmE8?~ky z=u)YAQ)*P2kg`p|6=!BKc-?8mhi=jP$c3oRXe7519$Og<$=P=<8pA)AC7im&0bf%r z-~H{h5OyWlY-)=YEl-A@BgDgG=pTzIaM|m>9cPR9;MAXzdRWsC#dbLTT-#Z=teD^K zew5h~Z1q*q>Cg;aPb&>=-acFptla!v&LI)@vf}>EoZ0{8C$(YqwT=A zhlB|@Lu+g*#735ezwZA=`!B{h4Z%1UTr>SyyINV%1?gSR(aQpu8lFh*UzWXoTB)7Q zI;NZoJWkGGl_;xHx6Jo~eK5=WFeBhDK!s3w7vv6uBfZ;VJ@Q$dw+q3-dSZM&J8 zR3GkVR`PDZ$*g|AQg;ZOT$pX~M0>cobfU&HoW8vYraLq?Mi1`o`zDrE?#7odMlc+i zsK*rtZmPb*AJ`}m==VNy?&;;TfvdwZlbtK>Udl4oEVIk=KfrOEA~bmhw%$qY z=N3~sH%wv_^v$4yT$p5r}PYe>ks-j{uQj6CKY+;ajY zaam3~q}Ti^t>(#w(d2yltRv#3zvQY7&qtvWz?W9lT&Y zk2DIp`H$mzd6s=zk+E|1ZBPjF_FFAic`26K7%_p{(6=78q;JYK@}*eB=MG@jZN}=+ zrS855ztzhRK4BD6@83IFQ*T<%8za+A#r2~PX0Nz*BB2c02FtvwUk~H67C{F3B?E$O&w;chC#U-67x>wcyk{G+kDeajoVuJ zWjF_x{WQ&L`{EY-5-EMUTMscTf_lSyEVy0u;l)*X!`@quFMBWB*yPu!j5r0@JzIvZ z-oUKITk5&~Sq0;QBV}ofs|`q}dPfLXDx{$Q>{kEK(K>4rC$CP- z%jJU8M8F$AEZ!FO< zIwLoVheV_LxnV}sO>Lfo^I?RYMPrnk3ulT}<_=7QtG`WCNJAVM#cb*p!wSuq`devz zF=!a~Z${B=7K@hT1%I*Z$>PH2d-`Nr(3<|8;H*`0nBFZaYY;GCz&iiNH~#*T?nu)A~% z%hTM#b3d_>;2;gK^Z4yOvE@GnKLfk@`11$BlLe0BE{=68PrXb2DJTlU9OAmC)F+L2 zD@X$@Ji}MfzxfH+=D8<;OWt1Je$V0HJjBDE1)zKP`iVIfjK2x&amcTGjQ><3cQ&2B zi)+c7YGGeLn?B?1_qhiFnbP?=$MQ&b4)J(R4+%Hk`9) z;C5U60CNgP^p8&x9Kr^e0~x8mPsWFu2lNb`D?)hEvov*Z1+Kn%>l9DC2Er&7p3pa^ zt^8k2+sVSEC$T3B9Dy9z`J$(vi7FsZ?ywq23RTi>dxw-OszO$FK!UF!NZ6N7zjuB3 zvO5T$`WmR*2A})X3S*TV)1j`0Uy^c53){T_n$PViRh%zGtJz``-?wH{PswTX9Jki6hb*&>kJ zHOM{xZT#qP#ZzFSXwa%<(6WIdjEvn_Q8cpNk0J^)EpQZp0kI%%=fP&STU+Tn;`jQw ztX31x<3>Q5WT^NMNG=akH;B-;0zr*S#t!68dUAL{QrnB6>1b=eY?M(~%C2zJ!E5Km z;tgotX0Q762I^*l$?G52I8CqgM9e&{;~<=DQ)B_Tqm%g1iGXf3EqjoZ4x8o7Qgjq} zn9Awf262$arf)Sv8;ZWSf`tBFYlqc361>{{zDMvw#revN!iCQKd7wT=o@M4{q0Rwx z_w+>Sc?Y0!w+3knvLIL(ulHSVcjQ}F7tULOAj;MC88C2xo9D;rQdGE zC9Ho{N#Z9+Wra~WuL#YtwR!D;M1$S^XoX;LsrFbtvziMe1>l?psFL$NeVO>=_COFL zjDT&OsLE0H_}pZ)GS55l@T-7cav-@ zpii2JGOuDrsm&HoM;KBbksYSDJZ-DMri8SCNprWPLp%A#Pmp9YfDPlVTbVtZ@X^$A z#U>z@*w@b1s$2kvN)*~I_D4uRM17uJluI_xZ{wI6wlc-0smyj4rc{H;gK9=k4m&Rt zqO{g$f$mEb17>suMc#|CVSMM(*WRY8HXWi_fTBKBEp_vqgrsV5I-$zu9Ilab{Q_kE zn9?E0^q?(QEP81WLDT%K$QdXUtD@a=ouYEVi$Ue9ffE{d8y4kTsWaF+ccq|rItpr}$NmeHXDa$GK;#5CfHHhmN# zHk`ZIJNpg^&D_m~`(;cal6 z^WXdrrFj=|toN|amQagk_P2ql&GeJp=dsVStg1G0cjtd9=2tMP1R z!>xTPN#QTDa_dP;tM@0Fs?t>(KxR;pMxGN#mL}pI*#u1tP>XrCw?i#T!Fe)O)P9j^ z+HMD%x^-(hMr((_Ug6r%%gnj}HlzX{?)zu~#737p+?weJ z)mkAfA3Y}-c@$PWM(aSkJ-$~EQwL3Oymc;wXTPpJ@ippsy7gTn^*)st+Rf$aqr<}- z8?SNt%x^a*7a11@31xV11Wk9tZ!F+e&n0{!paJuC?TS(DGB^z)+M2WVdG%Z;wDZDh z!7^pq1)aN<2!ZJ*6VlwXN$Wlv5o4K7YSW_6=d}W?M)|MTZj^(pA(5?H0~SmP zP)o1W4%-UM0N+C^AfGi7BEKfp;XwDO_h3kMh|^Z!VOZFjgkJs_jVL^QPpbFDj33_q zU`fThq%uw~uO*7Qq}$ctR2LSKvg+~82Ymf@1V5fDC8M0Jv)f*UnXosfdrNb8c|Y)l z`1Y77ru}?Y;t2!m)Fid1%b!i!xoFUJHSsAxxqZy@A zj9a?(gTaOnu}I8Eq~5i~K)z8KRPK&=GqW?`LP>e6;jy!O*&=7{(B%8>=LmRzWxnyd zh7{VEECXTzyjD4t;-z_^v2FVvp;tFt!9fFxR7x1&fr>`(x4C9==(gRCw%wq=EONg^o45lW1yW|m!|@q4%lE+MRp+<`<5m70?pczy!RlNR&If{uuaHF5K7r(kb7 zhCba`rqjcTT5uimE zA|`CCL-Wr@+Kkb|*v^vkf@s`40Gm8qq!%Ukm}a*o4hTGQ?VE zct`cYqB%5%tn4EZcDHJWED8oIqa8=;JXF{T;b#tnX{P4M;d|cx*|k{ECCx9%#9tN) z@>7K`QZjj{OW*inl;C#HA4Rh zZ)YxqcIEqrF~~v-rk+CbXiny;$x!uuW~kg}GK71I#(G;NhlggK9^lbdw>9`Kb@s_4 zVB;EN1EZ7~m%fqJhII9D$Ds0rP(m*3v2)!?0&`gBf_vGzQFz0Dtg<`Vpy&GHqMeR zNjc(kZe0yEdvRqDj&HIMH}`U(t6NWxBMqVWQ9N24l{Y)DvHjg5rg1m)xk_jHmp0?~ z0a@FF*8cv9hNjnJB<{vUb89Mar$){xD$lK-=gC+s2FF?m;zl3Z)OsHLio8LoS{8Vr zLs)vXcH#n5t{-)QGR)#;{f~{_tP9^R{)2C9-1uf)aH5`Kw3Hk6Q7(g>24 zAuZpaR-{Cf-<7ACR>sauVF^r`YL|Fqg$E<_wqs*i%8Ev#1WCLI0rMoq#U)SAaJ8oo zMzhqAzVk6Nm;uvV8(!nPLfHtY!>)Q*SQikehrdByF6IM z>a%Qhd~Xp{?3%oU3-crR!EB^*tb2s3a7!#KvL@YT2y(#~K!ttm`7{?N89v<}C&3a4@TCvj0`Ns5!rTyrbP_JJc~K5Z&cR@bp(F2@`^GtehzSuN z`R!|*3*Q@1cv{Sl8f3Hj%IunjI$0B-H%m-(RWu?^gcZOEIN8JGg^aYK&OaQkFIhHu z@r>PAnsqc%j(jcSqs0NHK)spx`1;Rrl`h*lLOA(zYx6eO!7ugFPy#;Ef!{duj8sxp zF9Fd_G~`{s1(g|0#nUlz`>}J`?p}!Gm^86~L2IS&ZW9S<<6LxN(CYZ5+P+wO)yTyp zO;V3370r{te8HirTA>)!wu?)vzBeT5=@Qw6)NsJ?Ou&+b7|5@xx2Boofbew3L@ zesfx5Puq@gyBZv>k$R-$B0eZO-Oy>o8&mIC78>v@tm%1hvC81Pqaa?kP!-!p8k4`Y z(@1>vAv8wq7q++N=GB6GI>m33Bs25f?7_qfd6yWQ}jQR}{kT#cj`|#fcq5UsUJj zBIVoIU4tky1K6`XnwEqDq3HW_oG2iuyWahqQ-h3@=hmEDHR96u1|FlBAk_8PXhwO{HzKot`b-qw>HNsN zr6b@Ak;)nf5ZhN7x1w=(DFr@KeF(3(-oVF2IO{pQ_Dm0ifc%*a` zWO49+w0E9iO{Lu$9vKA{5r!^Aiby9QN*7QNr1u^I2qG;MNeE~(sPvA~dy@_cAcPW% zBSMg3gg_D^P3cXLCRI4w`DW%jzt8XUH&>D?$UX-+jX zm`%kIMT|!DcnY&aSKe$fYv)Qi6B=N4Vo}SJNsK>+*TUYt%kp&8-+qa}+?}6X^%<>o zp2znYD!MWKiS#=uNs^aT^-Sjr^^{9f2$ss+ z1xl%<{wj@D;6pO2bbO8Al~Rh+uhQtnp7|i%x_TV}mY>I8G*rwB_Dzbs`W-oQlac<` zN=BcxK55oL!pHin9-j(>Lwa3{bUD3U*tt_o7cE%|PK{T>+O@*l`h}S{I@f`rpmou~ zX3k)HApTUl-<}b!=UB46G^ek4Lzxc#+uUG9+eTzS1~jFO-eAe{QEfkt?!Ydzx4B#7 zQP<3(b0ya$TCvXr+xT}b1h{s?V<_;U(o8Z#QRrL0Fa!zbcCaau7}@(^<9jIuoz+Gf z1vQn72WIGU1v?nvS_CDPks`MjF9` z)7+KTJGBzwyLI=R9*IkpS~zDRS0Gh}$-)6XJx;4x@RJ~LnR?YjY9It|xb2 z#Ylf1)?J>M188M};aHwm(`;%6vSM75P~MQ^!F#Mf>^Bu3TJe1y_gAY0Cq4KKE7iX4 zS4tu|Lc(LnaG@byJ&*S2CU&og{K=;c+b^#|1?;S1_`c(nn`Koxgo#N0{j}omw};~` zldOUr?WXhj)|@HcO6-%;?>kmUt^>P84Gn_YN@Yg`Yi7y4#lpI7n!&HUkK6hFTU;4c z3LR~4KQcZFVgw7Fw+GZLJ2UPyFA>C%%zo*T(DAX1&*X-jXJa-Zp`1fgM#;-FKK;(v zSHUDggt>pQ6Y?_gkVWQOZ1QyU2@t<|qXtixsWr&aqq~DchaZnRM`l7KkfCXa6~dJE z5K>ydQ|ix$0$t(+YejwK>6*69m}f&#h~ZeB`^;>qIttCvEXQA8bEzu2^^fp4E`KfM zghcbMa|~>$6kTpAjI7r}UTV@A^IbHW1?}s;Ju$G@?OtQ>+|<917*B(b`D%tGvMw9k zL~RVCog*&?ey@)qU$-{4%!A7`bO*@oWXS{`vkyDz+49(vMtnZ2zDE`#9L?9%OShaB zqIjf|h=xaao5WD8kD}hE-7AaT0=gD!C%zZzOr+I4*LauDBsWVx0_t(k(l^*{_yy!; zNq*c*ylm!tgyfzh!^HXs%N4VI++rhkt5g@^GpGh#X!DLSsCZ%&^;!-hT-Z{?rx(3e zGc7T+MM1_MenTBoua=oBwgH(mK{@afDQOquvGCwwQxh! za)?=a;i_5H9q34Bz<_K|2A{~XH1h=17v!J{=^k^zGSooa<_1 z&+E;i{p#Xn8$~=s7CB7*9OV13#V3;r=(KzX$nswr~=rRxMVD}v84(Oz$j#gjMR>%`EKO4nj1m`Ss#gn1W* z@M~&Oaqr1cOdHc$s0)ZL0#w?EmcnQXhH&vz8^G44ECM46*#<$S-lw^cfq zf$k`$Ku|{g^nJ>db|E>`=}4=uDC=fDeX|xxng^B%b;|nZlCsFy$ZerU3E2Ijg%{q` z8@JW6KKsTj9*h{&uTk-w+i{lnvyKw+T)Wohuaq)^pI83A@NDAFI}_BFN1+QvsdZYU0;&+E~4nle>oDl(3te;k<^s*!H%W&KoKFF7d59sV|D4JcHy#tWhq z3qc1Qe&GgP2Fb{f6cw({joBJE*%$=$**%D%O@`h&pT1+Ni2H}UmyQd?t5&uzT~Gmr z$@bIKA~(2xqP6nbBD;0s0emsHeK^d;7}`XNP8CUPZt|}&VRM+CcAPz* z)<;5?Zs{gJ;bAlKI7=fMa=?(dJcY1OW+|1G~nCKfDb5%Jr-$Vm-BNMu{6`JMOiVA>A zLm#?&q=%@1%LsIM>$Mi&hzENvTjQr$S7Y+2_`sP3ci<0{$AF@Aub6$Rt({HmG*O;Q z5rd`b^rY5^P*Pe?R#2%4&A|?A5Hn$2ppJI)ZcQHvS<&82yQWbt8l z$(lb&CPHJj#v`dp#M+BBF<|MKCy{NM@GSXLhf5r3Pt`w{+%REGP$~e6cwMwc)K7NJ z+-KE{=$mwS6#VcRw+(xO{G82G{-L;A2$k%9`YBNJ=K9o(wD=aj= zj?BX9U_j!>FWkYKznv~<8>vi63n$7Oshg@hFW!~?x$JiSy`EeIWa4XR>{}LNB2$joh-2X1Y*AVe(^bz`vxt*$v+W$ z3D>+bKBUY;z;@4+wj@@Jt8kU*?54V)rd4Lf;wMhtn{w|oEL|#$zTOK{Sky;MvFNBd zkx`J<9FMp{ku`A)@VJ!-GM^v5+KNgwbbCgXY;&2T zWLLRa!^Y!9SUsfT=x_eTAd^^3B_jzgGp415_UD8qdjj{s{8ny0r4YlDId&z)5+t z?f-(4Dpvt*S=w2+G-O>68(S zJh%Pwxc5i+%fFEn0T>;}%~ZI^juogWEzfCFGd95u{Oouu|0AY}>Wzb_DztD{q#%GWf4WqCoGPfcyPJjc%{p@b;T?=|A@WjX&7;SF}4mdN}0jk8U@si65JM0d~C zj&W?%b?3kmBOp;y$B z(Cz^!htrn%05CK!+|ns)>kR2VaP)cl0(qHN8D8upWect`;y@a}1R>z8s_RRKwHqeG z@^0>Rs`a%F3TPmM2{!Yj6{`%DVXjVBlq4p_W>u}thAB3lZQ?vgb8NSbS^%&s#tbiU z;h$$NLp&T|S!dQDAp5C)%6^eaMv23bL;l)u?OAYB9iR$Uw2iZg!~NOD=}iqP#FaO2 zzPcD|Alc42LviWUNNSXTF5x=LSJ@SFxm?2kL0L>Ao+H%FW7S{Gj%YsvdV8KbG%z|s zB6t9OM~Spzy|df1y(Eub7VAP7+p>#x6q;Bqu|ax|wjVbLti4;m70({9WRtIZKEM8a zJ|>o*D*7e_e6VUc?uLf+Dwk=Xmz{P?(n3BBi{J8p40QI|6X1cI{pBr|r`B+L2#&1qm-AD=x<2wG^;+V^Uqk^BQ1V9+_Z71S3EoY=~ zYY<&0sI`&*+i*+hzh7Oq;JeURcn{BN%P0H&NNf%tdWDLHe7xz8`p|#r72+#|6Y)+Q z&X3wv2@xt|Xzb|TZ+iO^yr6zM9|6{8+BChr=ePk(k!L>vs8NLPT=06qhjRg#SoQdh z%&Mm~E%Q9>W|#O&%O06Tg00PtoG=$Am|*q>4Px*gKK@q2FSH5 z>JRnmI=`o_oFh5h(V2}_R5-y(MkB!G?F4-fEoASRQbuG#Cqphi-Rtl_I&9T2 z*&{1rQ;AFrAAoy2ys_A+R0R~j?)*k`Rv`2fGEQ!Od&082Vx%Hvt?*9dJk-G3c#3G1 zTM0V&;md-S1eIMM{KEC0^>-~7;15fZmIR*w$*4Au<_htb5i7h!+VbRO`tRcB62^hd zjIZ0%`;PGgUEb;5ikCBA)E(w8Gx+cW?WM1^Crre0NYhpLV#I|@(@pQ+-iuXV=HpTp z>{XrVG4NrCoDXGI_h8Y!Xv}ky_iDf?BisaX=TP;N(o9^=%5nTLAlh)^$F@Oj>Vlf5 z`8%loWXv))r&;=;6SHrUwRDP;ap_f{vDDgfJ09e-Wb^qR6_69m`gjdwrr$3|F?nuF zy4ynM;+C~F#sKclMkDxh4Ztv*AGvY}j4sWMys1nVZqGRVuHwSgy}#$1+5b}OK6%a+ zg(y8b1{%bd!eK`_u#X!v7hd0P`h(y^cu(^Eg(a$262Qy9Z?eXJi|hYovkh`c4^UMi zH^TP4NSnIE#~TM+cCLRU#}oa3%y4szvIcTW8jc52QLC?iNhpJl3JC(spKyx@595V$ zfH>9g#wwuiToZ+QUMNf84;a)K8trk}7yAZ;AM-tpDx%|1#=H}$)M+on`%pPPS!o`> zs%;)FUT+e&ZS-A8zCY;hd$MSy@Kqwdi*^0S*vFD^5z-aC^`Xuw94g&dOOyWOWU(+XYP^f6iW{ zn!{u|_KG|yjmJ<)NbIQH0HOI?;VO1)6e{Txx|jtOq5)xM`)~lTQV#vnB)s4L{4s2z zr@S?A<0FnWYvoE4AWHuX^nVmufqsQI;1-n16aks$db%X=vi=cLGzAR$34KoR3)8c~ za*z|$4;J?X-(q@i*R=o0nlhf*6TUoE+zCkPCrwC0aO0|)4t$X7E)X({CAvQS@z3cj z!?*yx4nslS;s9y?zLVmyluD6Z7dHEIjr*lD3W%AOg}f~u080Gg{urjieA2AC_a!t~ zu^|e-W__z)m9H$x2M6_ZAbzRlG^n!cL?8axF;1kcUce;7^E3^h$~R+|d@8?T`>9nH z{RM6sJtqg-OKcw#)+gIrgCypj<{>F|^CIiEZ-alvWCBa%oZX~s3Y&POc@iPhLiMA1 zx=|Jff0N!=)@4USIeUkMMIcF@_K7V^#sFM+te=(TXMk(wC?6a+ZXN)Xj6)K?3924n zDNYwqEG69>Lz$VzmUl6wpB;)lt~^F2gmKWv+`aNQ=wixnI*X#p_4^FrI5USsv4SAO z_L|}3`pM0`vg(z*kqfPd z!=rYFK^8tXP4##m8T{fEr%6DK*h!5AX(}F*W%}7REf@=UKY2iWdp-^@zY~6DMHS6? z7}BC=JxLpm4b9GU05puxxBEp>4ZwNJF4j~WL}jAd+amU!tbf(njO=@^023e24;gGh zxKF_!0ZCDo!x8~oB4bq_CVbp_tHKWFd3ECQ3RJu7) zIi;vzQdqG3{hLuDM6m(oY{Bv&r;k`Gb$@hLbCKR9jd7LeGyQDhSP{B#+SiyeS|>3x zYTG05p}2j+h}qNWn3cXCOLAXJWQVS6``?tW6LKWV1#%8gfyU%%1VD*bYoOru#?ZWz zWCV;m81Q-3*4Qm&4Y2oBHDGzi*I{%CT{zUiPx@$w=ZC7L?jX{NO&j}UhKEan+moK* z-h_wh9yF1KQJo&7H^4!QWt0o$W&Pv}@Ysw`vnByzhZRqqRuosrnwWsv9RKg~`I6HbpG^o70Hbd+dIJg5i zBd6uKPNzj~FglBJxyqEvgjE>qb+MUjPh=I|R0A0tdsXLgvQr-s%wr#y)!nGDIW($M zTl7zG839*a534Kx3Um^wqKf1*SnIZiqG;|Y}INfZT3Gw)nSVK&`^A(e*GHW{|EwY<-=h2akCy?d%PjArvfqegzvH+}7 zr^w!c$mGf=jhGmaUXyo1(0BcKST*@gIvkj{Qyu*qJ}eKU`^aZu_w9^#4BD&BiZPD> zYP1@@)mbCvSji$-JMbr|Zk px&Ka>{Qq11WrX~{|5nHRJmS&YbEky)f8FXyPuo}vt9dWve*hISp>6;G literal 0 HcmV?d00001 diff --git a/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_3.png b/algorithms/two_pointers/backspace_string_compare/images/examples/backspace_string_compare_example_3.png new file mode 100644 index 0000000000000000000000000000000000000000..bb61e43ad5218312a4749ba00e723809b2cf077d GIT binary patch literal 29461 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 literal 0 HcmV?d00001 diff --git a/algorithms/two_pointers/backspace_string_compare/test_backspace_string_compare.py b/algorithms/two_pointers/backspace_string_compare/test_backspace_string_compare.py new file mode 100644 index 00000000..4fa5db9e --- /dev/null +++ b/algorithms/two_pointers/backspace_string_compare/test_backspace_string_compare.py @@ -0,0 +1,54 @@ +import unittest +from parameterized import parameterized +from utils.test_utils import custom_test_name_func +from algorithms.two_pointers.backspace_string_compare import ( + backspace_compare_two_pointers, + backspace_compare_two_pointers_2, + backspace_compare_build_string, +) + +BACKSPACE_STRING_COMPARE_TEST_CASES = [ + ("x##y", "y", True), + ("abc###", "def###", True), + ("hello#world", "hellworld", True), + ("a##b##c", "c", True), + ("coding", "coding", True), + ("ab#c", "ac", True), + ("ab#c", "bc", False), + ("abc###", "xyz###", True), + ("#", "#", True), + ("ab#c", "ad#c", True), + ("ab##", "c#d#", True), + ("a#c", "b", False), +] + + +class BackspaceStringCompareTestCase(unittest.TestCase): + @parameterized.expand( + BACKSPACE_STRING_COMPARE_TEST_CASES, name_func=custom_test_name_func + ) + def test_backspace_string_compare_two_pointers( + self, s: str, t: str, expected: bool + ): + actual = backspace_compare_two_pointers(s, t) + self.assertEqual(expected, actual) + + @parameterized.expand( + BACKSPACE_STRING_COMPARE_TEST_CASES, name_func=custom_test_name_func + ) + def test_backspace_string_compare_two_pointers_2( + self, s: str, t: str, expected: bool + ): + actual = backspace_compare_two_pointers_2(s, t) + self.assertEqual(expected, actual) + + @parameterized.expand( + BACKSPACE_STRING_COMPARE_TEST_CASES, name_func=custom_test_name_func + ) + def test_backspace_compare_build_string(self, s: str, t: str, expected: bool): + actual = backspace_compare_build_string(s, t) + self.assertEqual(expected, actual) + + +if __name__ == "__main__": + unittest.main() From 10567e69cb146b5a186aa53713e93a14cfc34aa6 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Tue, 23 Jun 2026 06:07:06 +0000 Subject: [PATCH 2/2] updating DIRECTORY.md --- DIRECTORY.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index d4d9bcb0..020746ad 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -466,6 +466,8 @@ * [Test Append Chars To Make Subsequence](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/two_pointers/append_chars_to_make_subsequence/test_append_chars_to_make_subsequence.py) * Array 3 Pointers * [Test Array 3 Pointers](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/two_pointers/array_3_pointers/test_array_3_pointers.py) + * Backspace String Compare + * [Test Backspace String Compare](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/two_pointers/backspace_string_compare/test_backspace_string_compare.py) * Container With Most Water * [Test Container With Most Water](https://github.com/BrianLusina/PythonSnips/blob/master/algorithms/two_pointers/container_with_most_water/test_container_with_most_water.py) * Count Pairs