sobota 8. srpna 2009

Scripting Games 2009 - Event 3

Třetí úkol se jmenoval The shot put.

Divize Advanced
V zadaném vstupním souboru bylo potřeba najít slova (řádky), které obsahují pouze jednu samohlásku (mohla se opakovat), čili ananas je správně, ale ahoj nikoli.
  1. gc './Wordlist_ADV3.txt' |? {(($_.ToCharArray() -match '[aeiouy]'| group)|measure-object).count -eq 1} | out-file result.txt
Použil jsem one-liner, který provádí následující:
  1. načte vstupní soubor
  2. vstupní řádku převede na pole znaků ($_.ToCharArray()). Pokud je v poli znaků pouze jedna samohláska
  3. vypíše vstupní řádku do souboru
Ani v tomto případě se nejednalo o žádnou záludnost. Je dobré vědět, že řetězec znaků lze převést na pole znaků pomocí metody ToCharArray().

Divize Beginners
Vstupní soubor se měl rozdělit na dva a v každém novém souboru měl být jeden odstavec originálního souboru. Ten se měl poté přejmenovat.
  1. (gc s*)[0..4] | Out-File 'First par.txt'
  2. (gc s*)[6..8] | Out-File 'Second par.txt'
  3. ren 'shot put.txt' 'Shot put.old'
V tomto případě jsem nehodlal ztrácet čas a problém jsem vyřešil jako kdyby to bylo ve skutečnosti - bez nějakého ošetřování pomocí tupého kódu.

Žádné komentáře: