package Ġsplitting _ a _ string _ into _ desc ending _ con secutive _ values Ċ Ċ import Ġkotlin . math . min Ċ Ċ class ĠSolution Ġ{ ĊĠĠĠ Ġfun Ġsplit String ( s : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbg Ġ= Ġs . first Not Zero () ĊĠĠĠĠĠĠĠ Ġif ( bg Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ( bg .. min ( s . length Ġ- Ġ 2 , Ġbg Ġ+ Ġ( s . length Ġ- Ġbg ) Ġ/ Ġ 2 Ġ+ Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . substring ( 0 .. it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest ( s , Ġ 0 , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. any () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . first Not Zero ( startIndex : ĠInt Ġ= Ġ 0 ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= ĠstartIndex ĊĠĠĠĠĠĠĠ Ġwhile Ġ( this [ i ] Ġ== Ġ' 0 ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ>= Ġthis . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġi ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest ( s : ĠString , Ġbegin : ĠInt , Ġnum : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Str Ġ= Ġnum . toString () ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġs . first Not Zero ( begin ) ĊĠĠĠĠĠĠĠ Ġif ( i Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnum Ġ== Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! s . region Matches ( i , Ġtest Str , Ġ 0 , Ġtest Str . length )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġi Ġ+ Ġtest Str . length ĊĠĠĠĠĠĠĠ Ġif Ġ( next Ġ>= Ġs . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnext Ġ== Ġs . length ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtest ( s , Ġi Ġ+ Ġtest Str . length , Ġnum Ġ- Ġ 1 ) ĊĊĊĠĠĠ Ġ} Ċ }