Find words with alternating vowels and consonants: Difference between revisions

Content deleted Content added
Added AWK
PureFox (talk | contribs)
Added Go
Line 210: Line 210:
"verisimilitude"
"verisimilitude"
}
}
</pre>

=={{header|Go}}==
<lang go>package main

import (
"bytes"
"fmt"
"io/ioutil"
"log"
"strings"
"unicode/utf8"
)

func isVowel(c rune) bool { return strings.ContainsRune("aeiou", c) }

func main() {
wordList := "unixdict.txt"
b, err := ioutil.ReadFile(wordList)
if err != nil {
log.Fatal("Error reading file")
}
bwords := bytes.Fields(b)
var words []string
for _, bword := range bwords {
s := string(bword)
if utf8.RuneCountInString(s) > 9 {
words = append(words, s)
}
}
count := 0
fmt.Println("Words with alternate consonants and vowels in", wordList, "\b:\n")
for _, word := range words {
found := true
for i, c := range word {
if (i%2 == 0 && isVowel(c)) || (i%2 == 1 && !isVowel(c)) {
found = false
break
}
}
if !found {
found = true
for i, c := range word {
if (i%2 == 0 && !isVowel(c)) || (i%2 == 1 && isVowel(c)) {
found = false
break
}
}
}
if found {
count++
fmt.Printf("%2d: %s\n", count, word)
}
}
}</lang>

{{out}}
<pre style="height:36em">
Words with alternate consonants and vowels in unixdict.txt:

1: aboriginal
2: apologetic
3: bimolecular
4: borosilicate
5: calorimeter
6: capacitate
7: capacitive
8: capitoline
9: capitulate
10: caricature
11: colatitude
12: coloratura
13: colorimeter
14: debilitate
15: decelerate
16: decolonize
17: definitive
18: degenerate
19: deliberate
20: demodulate
21: denominate
22: denotative
23: deregulate
24: desiderata
25: desideratum
26: dilapidate
27: diminutive
28: epigenetic
29: facilitate
30: hemosiderin
31: heretofore
32: hexadecimal
33: homogenate
34: inoperative
35: judicature
36: latitudinal
37: legitimate
38: lepidolite
39: literature
40: locomotive
41: manipulate
42: metabolite
43: nicotinamide
44: oratorical
45: paragonite
46: pejorative
47: peridotite
48: peripatetic
49: polarimeter
50: recitative
51: recuperate
52: rehabilitate
53: rejuvenate
54: remunerate
55: repetitive
56: reticulate
57: savonarola
58: similitude
59: solicitude
60: tananarive
61: telekinesis
62: teratogenic
63: topologize
64: unilateral
65: unimodular
66: uninominal
67: verisimilitude
</pre>
</pre>