September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue