ABC words: Difference between revisions

Added Swift solution
m (Simplified C++ code)
(Added Swift solution)
Line 724:
54. tabernacle
55. tablecloth
</pre>
 
=={{header|Swift}}==
<lang swift>import Foundation
 
func loadDictionary(_ path: String) throws -> [String] {
let contents = try String(contentsOfFile: path, encoding: String.Encoding.ascii)
return contents.components(separatedBy: "\n")
}
 
func isAbcWord(_ word: String) -> Bool {
var a = false
var b = false
for ch in word {
switch (ch) {
case "a":
if !a {
a = true
}
case "b":
if !b {
if !a {
return false
}
b = true
}
case "c":
return b
default:
break
}
}
return false
}
 
do {
let dictionary = try loadDictionary("unixdict.txt")
var n = 1
for word in dictionary {
if isAbcWord(word) {
print("\(n): \(word)")
n += 1
}
}
} catch {
print(error)
}</lang>
 
{{out}}
<pre>
1: aback
2: abacus
3: abc
4: abdicate
5: abduct
6: abeyance
7: abject
8: abreact
9: abscess
10: abscissa
11: abscissae
12: absence
13: abstract
14: abstracter
15: abstractor
16: adiabatic
17: aerobacter
18: aerobic
19: albacore
20: alberich
21: albrecht
22: algebraic
23: alphabetic
24: ambiance
25: ambuscade
26: aminobenzoic
27: anaerobic
28: arabic
29: athabascan
30: auerbach
31: diabetic
32: diabolic
33: drawback
34: fabric
35: fabricate
36: flashback
37: halfback
38: iambic
39: lampblack
40: leatherback
41: metabolic
42: nabisco
43: paperback
44: parabolic
45: playback
46: prefabricate
47: quarterback
48: razorback
49: roadblock
50: sabbatical
51: snapback
52: strabismic
53: syllabic
54: tabernacle
55: tablecloth
</pre>
 
1,777

edits