package Ġorg . red quark . tutorials . leetcode Ċ Ċ fun Ġis Match ( s : ĠString , Ġp : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġrows Ġ= Ġs . length ĊĠĠĠ Ġval Ġcolumns Ġ= Ġp . length ĊĠĠĠ Ġ/// ĠBase Ġconditions ĊĠĠĠ Ġif Ġ( rows Ġ== Ġ 0 Ġ&& Ġcolumns Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( columns Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠDP Ġarray ĊĠĠĠ Ġval Ġdp Ġ= ĠArray ( rows Ġ+ Ġ 1 ) Ġ{ ĠBoolean Array ( columns Ġ+ Ġ 1 ) Ġ} ĊĠĠĠ Ġ// ĠEmpty Ġstring Ġand Ġempty Ġpattern Ġare Ġa Ġmatch ĊĠĠĠ Ġdp [ 0 ][ 0 ] Ġ= Ġtrue ĊĠĠĠ Ġ// ĠDe als Ġwith Ġpatterns Ġwith Ġ* ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 2 Ġuntil Ġcolumns Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( p [ i Ġ- Ġ 1 ] Ġ== Ġ'* ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp [ 0 ][ i ] Ġ= Ġdp [ 0 ][ i Ġ- Ġ 2 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠFor Ġremaining Ġcharacters ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġrows Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 1 Ġuntil Ġcolumns Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s [ i Ġ- Ġ 1 ] Ġ== Ġp [ j Ġ- Ġ 1 ] Ġ|| Ġp [ j Ġ- Ġ 1 ] Ġ== Ġ'.') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp [ i ][ j ] Ġ= Ġdp [ i Ġ- Ġ 1 ][ j Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( j Ġ> Ġ 1 Ġ&& Ġp [ j Ġ- Ġ 1 ] Ġ== Ġ'* ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp [ i ][ j ] Ġ= Ġdp [ i ][ j Ġ- Ġ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p [ j Ġ- Ġ 2 ] Ġ== Ġ'.' Ġ|| Ġp [ j Ġ- Ġ 2 ] Ġ== Ġs [ i Ġ- Ġ 1 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdp [ i ][ j ] Ġ= Ġdp [ i ][ j ] Ġor Ġdp [ i Ġ- Ġ 1 ][ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġdp [ rows ][ columns ] Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( is Match (" aa ", Ġ" a ")) ĊĠĠĠ Ġprintln ( is Match (" aa ", Ġ" a * ")) ĊĠĠĠ Ġprintln ( is Match (" ab ", Ġ". ")) ĊĠĠĠ Ġprintln ( is Match (" aab ", Ġ" c * a * b ")) ĊĠĠĠ Ġprintln ( is Match (" miss iss ipp i ", Ġ" mis * is * p *. ")) ĊĠĠĠ Ġprintln ( is Match ("", Ġ" .* ")) Ċ }