Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,41 @@
import Foundation
let wordsURL = NSURL(string: "http://www.puzzlers.org/pub/wordlists/unixdict.txt")!
let wordsstring = try NSString(contentsOfURL:wordsURL , encoding: NSUTF8StringEncoding)
let allwords = wordsstring.componentsSeparatedByString("\n")
let words = allwords//[0..<100] // used to limit the size while testing
extension String {
var charactersAscending : String {
return String(Array(characters).sort())
}
}
var charsToWords = [String:Set<String>]()
var biggest = 0
var biggestlists = [Set<String>]()
for thisword in words {
let chars = thisword.charactersAscending
var knownwords = charsToWords[chars] ?? Set<String>()
knownwords.insert(thisword)
charsToWords[chars] = knownwords
if knownwords.count > biggest {
biggest = knownwords.count
biggestlists = [knownwords]
}
else if knownwords.count == biggest {
biggestlists.append(knownwords)
}
}
print("Found \(biggestlists.count) sets of anagrams with \(biggest) members each")
for (i, thislist) in biggestlists.enumerate() {
print("set \(i): \(thislist.sort())")
}