September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,33 +1,24 @@
from strutils import contains, format, toUpper
from strutils import toUpperAscii, contains, format
from sequtils import delete
proc canMakeWord(s: string): bool =
proc makeWord(s: string): bool =
var
abcs = @["BO", "XK", "DQ", "CP", "NA", "GT", "RE", "TG", "QD", "FS",
"JW", "HU", "VI", "AN", "OB", "ER", "FS", "LY", "PC", "ZM"]
matched = newSeq[string]()
if s.len > abcs.len:
return false
for i in 0 .. s.len - 1:
var
letter = s[i].toUpper
n = 0
for abc in abcs:
if contains(abc, letter):
delete(abcs, n, n)
matched = matched & abc
break
else:
inc(n)
for ch in s.toUpperAscii.items:
block outer:
for i, abc in abcs.pairs:
if abc.contains(ch):
abcs.delete(i)
break outer
return false
return true
if matched.len == s.len:
return true
else:
return false
var words = @["A", "bArK", "BOOK", "treat", "common", "sQuAd", "CONFUSE"]
let words = @["A", "bArK", "BOOK", "treat", "common", "sQuAd", "CONFUSE"]
for word in words:
echo format("Can the blocks make the word \"$1\"? $2", word,
(if canMakeWord(word): "yes" else: "no"))
echo format("""Can the blocks make the word "$1"? $2 """, word,
if makeWord(word): "yes" else: "no")