Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
33
Task/ABC-Problem/Nim/abc-problem.nim
Normal file
33
Task/ABC-Problem/Nim/abc-problem.nim
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
from strutils import contains, format, toUpper
|
||||
from sequtils import delete
|
||||
|
||||
proc canMakeWord(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)
|
||||
|
||||
if matched.len == s.len:
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
var 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"))
|
||||
Loading…
Add table
Add a link
Reference in a new issue