package Ġdata _ structure . string Ċ Ċ import Ġjava . util .* Ċ Ċ class ĠReverse String Ġ{ ĊĠĠĠ Ġfun Ġsolution ( s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġs . length Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġstring Result Ġ= Ġs . toCharArray () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġstring Result [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Result [ j ] Ġ= Ġstring Result [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Result [ i ] Ġ= Ġtemp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠString ( string Result ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġsolution Per Word ( s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= ĠStack < Char >() ĊĠĠĠĠĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġrepeat ( s . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! s [ it ]. is Letter () Ġ|| Ġit Ġ== Ġs . last Index ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġs . last Index Ġ&& Ġs [ it ]. is Letter ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( s [ it ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( stack . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( stack . pop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! s [ it ]. is Letter ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstringBuilder . append ( s [ it ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstack . push ( s [ it ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠstringBuilder . toString () ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġreverse String Ġ= ĠReverse String () ĊĠĠĠ Ġprintln ( reverse String . solution Per Word (" Hello ĠGithub Ġf ani Ġab d ull ah ! ")) Ċ }