HKOI 2004 Team Training Data Processing 1 & String Functions (Intermediate Level)
TRAC - A String Processing Language
Transcript of TRAC - A String Processing Language
-
8/14/2019 TRAC - A String Processing Language
1/8
[YDG # D W{yel` ]yhgbwwel` Odl`rd`biu Gdozel L, Chhbyw 45:;
Dl d{{bc}{ pdw cdkb {h ghl{yho {aew odl`rd`b iu {ydkbcdynel` {abldcb$8
[ab hlou kd{d el d [YDG }yh`ydc ew w{yel`w
[abyb dyb hlou {aybb wul{dg{egdo ghlw{yrg{w el {ab odl`rd`b
'!,,,% # dg{ezb jrlg{ehl gdoo
Gdoo {ab elkegd{bk jrlg{ehl dlk yb}odgb {ab gdoo iu {ab ybwro{ dlkybel{by}yb{ {ab ybwro{
''!,,,% # lbr{ydo jrlg{ehl gdoo
Gdoo {ab elkegd{bk jrlg{ehl dlk yb}odgb {ab gdoo iu {ab ybwro{ dlk kh lh{
ybel{by}yb{ {ab ybwro{
!,,,%
Ybchzb {ab }dybl{abwbw dlk kh lh{ el{by}yb{ {ab blgohwbk w{yel`
!%w }yh}byou lbw{
D jrlg{ehl gdoo ohhnw oenb'!jl/dy`4/dy`9/dy`7%
hy'!jl%
[ab jeyw{ w{yel` ibjhyb {ab ghccd hy % ew {ab ldcb hj {ab jrlg{ehl
[ab dy`rcbl{w jhoohp wb}dyd{bk iu ghccdw
-
8/14/2019 TRAC - A String Processing Language
2/8
[ab [YDG El{by}yb{by Do`hye{acD{ {ab w{dy{ hj {ab }yh`ydc {ab }yh`ydc ew el {ab )dg{ezb) w{yel`dlk {ab )wgdllel` }hel{by) }hel{w {h {ab jeyw{ gadydg{by hj {aeww{yel`
Gadydg{byw }yhgbwwbk iu {ab wgdllby dyb `blbydoou dkkbk {h {ab ye`a{blk hj {ab )lbr{ydo) w{yel`
[ab Wgdllel` Do`hye{ac
4, [ab gadydg{by rlkby {ab wgdllel` }hel{by ew bqdcelbk, Ej {abyb ew lhgadydg{by obj{ !dg{ezb w{yel` bc}{u%/ `h {h yrob 4;,
9, Ej {ab gadydg{by frw{ bqdcelbk !iu yrob 4% ew d ib`el }dybl{abwew/ {abgadydg{by ew kbob{bk dlk {ab }hel{by ew chzbk dabdk {h {ab gadydg{byjhoohpel` {ab jeyw{ cd{gael` blk }dybl{abwew, [ab blk }dybl{abwew ew
kbob{bk dlk doo lhlkbob{bk gadydg{byw }dwwbk hzby !elgorkel` lbw{bk}dybl{abwbw% dyb }r{ el{h {ab lbr{ydo w{yel` pe{ahr{ gadl`b, @h {h yrob 4
7, Ej {ab gadydg{by frw{ bqdcelbk ew be{aby d gdyyed`b yb{ryl/ d oelb jbbk hyd {dirod{b/ {ab gadydg{by ew kbob{bk, @h {h yrob 42,
;, Ej {ab gadydg{by frw{ bqdcelbk ew d ghccd/ e{ ew kbob{bk, [ab ohgd{ehljhoohpel` {ab ye`a{#adlk gadydg{by d{ {ab blk hj {ab lbr{ydo w{yel`/ gdoobk{ab )gryybl{ ohgd{ehl/) ew cdynbk iu d }hel{by {h elkegd{b {ab blk hj dldy`rcbl{ wriw{yel` dlk {ab ib`ellel` hj d lbp dy`rcbl{ wriw{yel`, @h{h yrob 42,
2, Ej {ab gadydg{by ew d wady} we`l/ {ab lbq{ gadydg{by ew elw}bg{bk, Ej {aewew d ib`el }dybl{abwew/ {ab ib`ellel` hj dl dg{ezb jrlg{ehl ew elkegd{bk,[ab wady} we`l dlk ib`el }dybl{abwew dyb kbob{bk dlk {ab gryybl{ohgd{ehl el {ab lbr{ydo w{yel` ew cdynbk {h elkegd{b {ab ib`ellel` hj dldg{ezb jrlg{ehl dlk {ab ib`ellel` hj dl dy`rcbl{ wriw{yel`, [abwgdllel` }hel{by ew chzbk {h {ab gadydg{by jhoohpel` {ab kbob{bk}dybl{abwew, @h {h yrob 4,
:, Ej {ab gadydg{by ew d wady} we`l dlk {ab lbq{ gadydg{by ew dowh d wady}we`l/ {ab wbghlk#jhoohpel` gadydg{by ew elw}bg{bk, Ej {aew ew d ib`el}dybl{abwew/ {ab ib`ellel` hj d lbr{ydo jrlg{ehl ew elkegd{bk, [ph wady}we`lw dlk {ab ib`el }dybl{abwew dyb kbob{bk dlk {ab gryybl{ ohgd{ehl el{ab lbr{ydo w{yel` ew cdynbk {h elkegd{b {ab ib`ellel` hj d lbr{ydojrlg{ehl dlk {ab ib`ellel` hj dl dy`rcbl{ wriw{yel`, [ab wgdllel`}hel{by ew chzbk {h {ab gadydg{by jhoohpel` {ab kbob{bk }dybl{abwew, @h{h yrob 4,
0, Ej {ab gadydg{by ew d wady} we`l/ ir{ lbe{aby yrob 2 hy : d}}oebw/ {abgadydg{by ew dkkbk {h {ab lbr{ydo w{yel`, @h {h yrob 42,
-
8/14/2019 TRAC - A String Processing Language
3/8
1, Ej {ab gadydg{by ew dl blk }dybl{abwew/ {ab gadydg{by ew kbob{bk, [abgryybl{ ohgd{ehl el {ab lbr{ydo w{yel` ew cdynbk iu d }hel{by {h elkegd{b{ab blk hj dl dy`rcbl{ wriw{yel` dlk {ab blk hj d jrlg{ehl, [ab }hel{by{h {ab ib`ellel` hj {ab gryybl{ jrlg{ehl ew lhp yb{yebzbk, [ab ghc}ob{bwb{ hj dy`rcbl{ wriw{yel`w jhy {ab jrlg{ehl adzb lhp ibbl kbjelbk, [ab
dg{ehl elkegd{bk jhy {ab jrlg{ehl ew }byjhycbk, @h {h yrob 4=,5, Ej {ab gadydg{by cbb{w {ab {bw{ hj lhlb hj {ab yrobw 9 {ayhr`a 1/ {ydlwjb{ab gadydg{by {h {ab ye`a{#adlk blk hj {ab lbr{ydo w{yel` dlk `h {h yrob 42
4=, Ej {ab jrlg{ehl adw lroo zdorb/ `h {h yrob 47,
44, Ej {ab jrlg{ehl pdw dl dg{ezb jrlg{ehl/ {ab zdorb w{yel` ew elwby{bk {h{ab obj{ hj !}ybgbkel`% {ab jeyw{ rlwgdllbk gadydg{by el {ab dg{ezb w{yel`,[ab wgdllel` }hel{by ew ybwb{ wh dw {h }hel{ {h {ab ohgd{ehl }ybgbkel` {abjeyw{ gadydg{by hj {ab lbp zdorb w{yel`, @h {h yrob 47,
49, Ej {ab jrlg{ehl pdw d lbr{ydo jrlg{ehl/ {ab zdorb w{yel` ew elwby{bk el
{ab lbr{ydo w{yel` pe{a e{w jeyw{ gadydg{by ibel` }r{ el {ab ohgd{ehl }hel{bk{h iu {ab gryybl{ ib`el#hj#jrlg{ehl }hel{by, Kbob{b {ab dy`rcbl{ dlkjrlg{ehl }hel{byw idgn {h {ab ib`el#hj#jrlg{ehl }hel{by, [ab wgdllel`}hel{by ew lh{ ybwb{, @h {h yrob 42,
47, Kbob{b {ab dy`rcbl{ dlk jrlg{ehl }hel{byw idgn {h {ab ib`el#hj#jrlg{ehl }hel{by jhy {ab jrlg{ehl frw{ bzdord{bk/ ybwb{{el` {ab gryybl{ohgd{ehl {h {aew }hel{, @h {h yrob 42,
4;, Kbob{b {ab lbr{ydo w{yel`/ ele{edoevb e{w }hel{byw/ ybohdk d lbp gh}u hj{ab ekoel` }yhgbkryb el{h {ab dg{ezb w{yel`/ ybwb{ {ab wgdllel` }hel{by {h
{ab ib`ellel` hj {ab ekoel` }yhgbkryb/ dlk `h {h yrob 4,42, Chzb {ab wgdllel` }hel{by dabdk {h {ab lbq{ gadydg{by, @h {h yrob 4,
Lh{egb doo hj {ab `h{hw !{aew ew ibjhyb 45:1%
-
8/14/2019 TRAC - A String Processing Language
4/8
[YDG Wgdllby # WrccdyuDg{rdoou {ab h}byd{ehl hj {ab el{by}yb{by ew wec}ob
!,,,% bq}ybwwehlw dyb gh}ebk jyhc {ab dg{ezb {h {ab lbr{ydo w{yel`
pe{a {ab !%w ybchzbkJrlg{ehlw dyb gh}ebk {h {ab lbr{ydo w{yel` pe{a cdynw pabyb {abyjrlg{ehl ldcb dlk dy`rcbl{w dyb
Hl {ab {ydeoel` % hj d jrlg{ehl gdoo {ab jrlg{ehl ew gdoobk pe{a {abdy`rcbl{w dwwbciobk hl {ab lbr{ydo w{yel` dlk {ab ybwro{ }r{ hl {abdg{ezb hy lbr{ydo w{yel` kb}blkel` hl pab{aby {ab jrlg{ehl gdoo pdw dg{ezhy lbr{ydo
!jhy jrlg{ehlw {ad{ yb{ryl {ab bc}{u w{yel` e{ khbwl{ cd{{by%
Gdyyed`b yb{rylw/ {diw/ dlk oelb jbbkw dyb e`lhybk[ab ekob w{yel` ew ybohdkbk el{h {ab dg{ezb w{yel` ej {ab dg{ezb w{yel`ibghcbw bc}{u hy hl dlu byyhy
-
8/14/2019 TRAC - A String Processing Language
5/8
[YDG ]ybkbjelbk Jrlg{ehlwEl}r{#Hr{}r{
'!yw% )ybdk w{yel`)
'!yg% )ybdk gadydg{by)'!gc/Q% )gadl`b cb{d)
'!}w/Q% )}yel{ w{yel`)
Kbjelb dlk Gdoo Jrlg{ehlw
'!kw/L/Q% )kbjelb w{yel`)
[ab w{yel` wucihoevbk iu Q ew }odgbk el w{hyd`b dlk ew `ezbl {ab ldcbwucihoevbk iu L,
'!ww/Q4/Q9/% )wb`cbl{ w{yel`)[ab jhyc ldcb L ew wb`cbl{bk iu Q4/ Q9/ ,,, wh {ad{ d gdoo peoo yb}odgb Q4pe{a {ab jeyw{ dy`rcbl{/ Q9 iu {ab wbghlk dy`rcbl{ b{g,
'!go/L/Q4/Q9/% )gdoo)
[ab zdorb ew `blbyd{bk iu iyel`el` {ab jhyc ldcbk L jyhc w{hyd`b dlkjeooel` {ab wb`cbl{ `d}w hj hykeldo zdorb hlb pe{a w{yel` Q4/ {ab `d}w hjhykeldo zdorb {ph pe{a w{yel` Q9/ dlk wh hl jhy doo {ab wb`cbl{ `d}w el{ab jhyc,
Wdcb dw '!L/Q4/Q9/%
-
8/14/2019 TRAC - A String Processing Language
6/8
'!kk/L4/L9/% )kbob{b kbjele{ehl)
Dye{acb{eg Jrlg{ehlw
'!dk/K4/K9% )dkk)
'!wr/K4/K9% )wri{ydg{)
'!co/K4/K9% )cro{e}ou)
'!kz/K4/K9% )kezekb)
Ihhobdl Jrlg{ehlw
'!ir/=4/=9% )Ihhobdl rlehl/)
'!ie/=4/=9% )Ihhobdl el{bywbg{ehl)
'!ig/=4% )Ihhobdl ghc}obcbl{)
'!iw/K4/=4% )Ihhobdl waej{)
'!iy/K4/=4% )Ihhobdl yh{d{b)
Kbgewehl Jrlg{ehlw
'!bt/Q4/Q9/Q7/Q;% )btrdow)
Ej Q7 ew btrdo {h Q9/ {ab zdorb ew Q7> h{abypewb e{ ew Q;,
'!`y/K4/K9/Q4/Q9% )`ybd{by {adl)
Ej {ab lrciby K4 ew do`biydegdoou `ybd{by {adl {ab lrciby K9 {ab zdorb ewQ4> h{abypewb e{ ew Q9,
Bq{byldo W{hyd`b Cdld`bcbl{ Jrlg{ehlw
'!wi/L/L4/L9/% )w{hyb iohgn)
'!ji/L% )jb{ga iohgn)
'!bi/L% )bydwb iohgn)
Ked`lhw{eg Jrlg{ehlw
'!ol/Q% )oew{ ldcbw)
'!}j/L% )}yel{ jhyc)
'!{l% ){ydgb hl)
'!{j% ){ydgb hjj)
-
8/14/2019 TRAC - A String Processing Language
7/8
[ab Ekob W{yel`[ab {u}egdo ekob w{yel` ew
'!}w/'!yw%%
paega peoo ybdk d w{yel`/ el{by}yb{ e{ !welgb {ab '!yw% ew dg{ezb%dlk }yel{ {ab ybwro{
Bqdc}ob hj [YDG ghkb'!kw/DD/GD[%
kbjelb )DD) {h ib )GD[)'!kw/II/!'!go/DD%%%
kbjelb )II) {h ib )'!go/DD%)
'!}w/!'!go/II%%%}yel{w
'!go/II%
'!}w/''!go/II%%
}yel{w'!go/DD%
'!}w/'!go/II%%}yel{w
GD[
-
8/14/2019 TRAC - A String Processing Language
8/8
Jdg{hyedoAbyb ew {ab jdg{hyedo jrlg{ehl6
'!kw/Jdg{hyedo/!'!bt/=/Q/4/
!'!co/Q/'!go/Jdg{hyedo/'!dk/Q/#4%%%%
%%%'!ww/Jdg{hyedo/Q%