Find words with alternating vowels and consonants
Ring
<lang ring> cStr = read("unixdict.txt") wordList = str2list(cStr) words = [] num = 0 vowels = "aeiou" consonants = "bcdfghjklmnpqrstvwxyz"
see "working..." + nl
ln = len(wordList) for n = ln to 1 step -1
if len(wordList[n]) < 10 del(wordList,n) ok
next
see "Words are:" + nl + nl
for n = 1 to len(wordList)
cflag = 0 vflag = 0 len = len(wordList[n]) for m = 1 to len if m % 2 = 1 cons = substr(consonants,wordList[n][m]) if cons > 0 cflag = 1 else cflag = 0 exit ok ok if m % 2 = 0 cons = substr(vowels,wordList[n][m]) if cons > 0 vflag = 1 else vflag = 0 exit ok ok next if cflag = 1 and vflag = 1 add(words,wordList[n]) ok
next
for n = 1 to len(wordList)
cflag = 0 vflag = 0 len = len(wordList[n]) for m = 1 to len if m % 2 = 1 cons = substr(vowels,wordList[n][m]) if cons > 0 cflag = 1 else cflag = 0 exit ok ok if m % 2 = 0 cons = substr(consonants,wordList[n][m]) if cons > 0 vflag = 1 else vflag = 0 exit ok ok next if cflag = 1 and vflag = 1 add(words,wordList[n]) ok
next
words = sort(words)
for n = 1 to len(words)
see "" + n + ". " + words[n] + nl
next
see "done..." + nl </lang> Output:
working... Words are: 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 done...