// ĠTODO : Ġmut ed Ġautomatically , Ġinvestigate Ġshould Ġit Ġbe Ġran Ġfor ĠJS Ġor Ġnot Ċ // ĠIG NORE _ BACKEND : ĠJS Ċ Ċ // ĠWITH _ RUNTIME Ċ // ĠFULL _ JDK Ċ Ċ package Ġmask Ċ Ċ import Ġjava . io .* Ċ import Ġjava . util .* Ċ Ċ fun Ġbox () Ġ: ĠString Ġ{ ĊĠĠĠ Ġval Ġinput Ġ= ĠString Reader ("/ aaa / bbb / ccc / ddd ") ĊĊĠĠĠ Ġval Ġl uh ny Ġ= ĠL uh ny () ĊĠĠĠ Ġinput . forEach Char Ġ{ ĊĠĠĠĠĠĠĠ Ġl uh ny . char In ( it ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġl uh ny . print All () ĊĠĠĠ Ġreturn Ġ" OK " Ċ Ċ } Ċ Ċ class ĠL uh ny () Ġ{ ĊĠĠĠ Ġval Ġbuffer Ġ= ĠLinkedList < Char >() ĊĠĠĠ Ġval Ġdigits Ġ= ĠLinkedList < Int >() ĊĊĠĠĠ Ġvar Ġto Be Mask ed Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġchar In ( it Ġ: ĠChar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . push ( it ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠComment ed Ġfor ĠK T - 6 2 1 ĊĠĠĠĠĠĠĠ Ġ// Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ. is Digit () Ġ=> Ġdigits . push ( it . toInt () Ġ- Ġ' 0 '. toInt ()) ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ' Ġ', Ġ'-' Ġ=> Ġ{} ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġelse Ġ=> Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠ Ġprint All () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠ Ġdigits . clear () ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( it . is Digit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdigits . push ( it Ġ- Ġ' 0 ') ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it Ġ== Ġ' Ġ' Ġ|| Ġit Ġ== Ġ'-') Ġ{ ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdigits . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( digits . size Ġ> Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠ Ġprint One Digit () ĊĠĠĠĠĠĠĠ Ġcheck () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( digits . size Ġ< Ġ 1 4 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġsum Ġ= Ġdigits . sum Ġ{ Ġi , Ġd Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ% Ġ 2 Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd Ġ* Ġ 2 Ġ/ Ġ 1 0 Ġ+ Ġ Ġd Ġ* Ġ 2 Ġ% Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġd ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sum Ġ% Ġ 1 0 Ġ== Ġ 0 ) Ġto Be Mask ed Ġ= Ġdigits . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprint One Digit () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! buffer . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġbuffer . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . is Digit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdigits . pop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprint All () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! buffer . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠ Ġout ( buffer . pop ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġout ( c Ġ: ĠChar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( toBe Mask ed Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (' X ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Be Mask ed -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprint ( c ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠLinkedList < Int >. sum ( f Ġ: Ġ( Int , ĠInt ) Ġ-> ĠInt ) Ġ: ĠInt Ġ{ ĊĠĠĠ Ġvar Ġsum Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠ Ġfor Ġ( d Ġin Ġbackwards ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġsum Ġ+= Ġf ( i , Ġd ) ĊĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsum Ċ } Ċ Ċ fun Ġ< T > ĠList < T >. back wards () Ġ: ĠIterable < T > Ġ= Ġobject Ġ: ĠIterable < T > Ġ{ ĊĠ Ġoverride Ġfun Ġiterator () Ġ: ĠIterator < T > Ġ= ĊĠĠĠĠĠ Ġobject Ġ: ĠIterator < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġcurrent Ġ= Ġsize ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnext () Ġ: ĠT Ġ= Ġget (-- current ) ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhas Next () Ġ: ĠBoolean Ġ= Ġcurrent Ġ> Ġ 0 ĊĠĠĠĠĠ Ġ} Ċ } Ċ Ċ // Ġfun ĠChar . is Digit () Ġ= ĠCharacter . is Digit ( this ) Ċ Ċ // class ĠQueue < T >( initial Buf Size Ġ: ĠInt ) Ġ{ Ċ // Ċ // ĠĠĠ Ġprivate Ġvar Ġbuf Size Ġ= Ġinitial Buf Size Ċ // ĠĠĠ Ġprivate Ġval Ġbuf Ġ= ĠArray < T >( initial Buf Size ) Ċ // ĠĠĠ Ġprivate Ġvar Ġhead Ġ= Ġ 0 Ċ // ĠĠĠ Ġprivate Ġvar Ġtail Ġ= Ġ 0 Ċ // ĠĠĠ Ġprivate Ġvar Ġsize Ġ= Ġ 0 Ċ // Ċ // ĠĠĠ Ġval Ġempty Ġ: ĠBoolean Ġget () Ġ= Ġsize Ġ== Ġ 0 Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġprev ( i Ġ: ĠInt ) Ġ= Ġ( buf Size Ġ+ Ġi Ġ- Ġ 1 ) Ġ% Ġbuf Size Ċ // ĠĠĠ Ġprivate Ġfun Ġnext ( i Ġ: ĠInt ) Ġ= Ġ( i Ġ+ Ġ 1 ) Ġ% Ġbuf Size Ċ // Ċ // ĠĠĠ Ġfun Ġpush ( c Ġ: ĠT ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġbuf [ tail ] Ġ= Ġc Ċ // ĠĠĠĠĠĠĠ Ġtail Ġ= Ġprev ( tail ) Ċ // ĠĠĠĠĠĠĠ Ġsize ++ Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġpop () Ġ: ĠT Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( size Ġ== Ġ 0 ) Ġthrow ĠIllegalStateException () Ċ // ĠĠĠĠĠĠĠ Ġsize -- Ċ // ĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuf [ head ] Ċ // ĠĠĠĠĠĠĠ Ġhead Ġ= Ġprev ( head ) Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġresult Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġclear () Ġ{} Ċ //} Ċ Ċ fun ĠReader . forEach Char ( body Ġ: Ġ( Char ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġread (); ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ- 1 ) Ġbreak ĊĠĠĠĠĠĠĠ Ġbody ( i . to Char ()) ĊĠĠĠ Ġ} Ġwhile ( true ) Ċ } Ċ