All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > General > Word Problems
Symmetrical words (Posted on 2004-05-21) Difficulty: 2 of 5
Can you think of words...

with horizontal symmetry?
with vertical symmetry?
with 180 degrees rotation symmetry?

What are the LONGEST words in each category? (Common words are preferred.)

See The Solution Submitted by Federico Kereki    
Rating: 3.5000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution Computer findings. | Comment 2 of 17 |

Vertical symmetry (about a horizontal axis) seems to work best with capital letters. The longest seems to be CHECKBOOK. (The symmetry of course depends on the font; the two diagonals of the K must meet at the vertical in the middle, for example.) After that come COOKBOOK, BEDECKED and EXCEEDED.  Some shorter ones, such as coocoo, work in lower case as well.

Horizontal symmetry (about a vertical axis) seems limited to shorter words.  TOOT seems to be the longest, with MOM, MUM, TOT and WOW following behind.

Rotation about 180 degrees seems best with lower-case letters. The longest seems to be dollop, but in order for the symmetry to work, the l's have to be able to slide so that their ascenders don't become descenders. The same problem exists with solos.  To eliminate the l problem we have to go to a word as short as suns.

The words the program found are:
A AA AHA AMA AVA AWA BE BECK BECKED BED BEDDED BEDECK BEDECKED BEE BEEBEE BEECH
BI BIB BIBB BIBBED BIBCOCK BICE BID BIDE BIDED BIKE BIKED BIKIE BIO BIOCIDE BO
BOB BOBBED BOBECHE BOCCE BOCCI BOCCIE BOCHE BOCK bod BOD BODE BODED BODICE
BODIED BOO BOOB BOOBED BOOBIE BOOBOO BOOED BOOHOO BOOHOOED BOOK BOOKED BOOKIE
BOX BOXED CEBID CEBOID CEDE CEDED CEDI CEE CHEBEC CHECK CHECKBOOK CHECKED CHEEK
CHEEKED CHI CHIC CHICHI CHICK CHICKEE CHICO CHID CHIDE CHIDED CHOCK CHOCKED
CHOICE CHOKE CHOKED CHOOK COB COBB COCCI COCCIC COCCID COCCOID COCK COCKED COCO
coco COD CODDED CODE CODEBOOK CODEC CODED CODEX COED COHO COKE COKED COO coo
COOCH COOCOO coocoo COOED COOEE COOEED COOK COOKBOOK COOKED COOKIE COX cox COXED
 DE DEB DECIDE DECIDED DECK DECKED DECO DECODE DECODED DEE DEED DEEDED DEICE
DEICED DEICIDE DEKE DEKED DEKKO DEX DEXIE DHOBI DIB DIBBED DICE DICED DICK
DICKED DICKIE DID DIDIE DIDO DIE DIED DIKDIK DIKE DIKED DIODE DIOXID DIOXIDE DO
DOBIE DOC DOCK DOCKED DODO DOE dollop DOXIE EBB EBBED ECHE ECHED ECHO ECHOED
ECHOIC ECOCIDE ED EDDIED EDDO EDH EH EIDE EKE EKED EX EXCEED EXCEEDED EXCIDE
EXCIDED EXEC EXODOI HAH HE HEBE HECK HEED HEEDED HEH HEX HEXED HI HIC HICK HID
HIDE HIDED HIE HIED HIKE HIKED HO HOB HOBBED HOBO HOBOED HOCK HOCKED HOD HOE
HOED HOICK HOICKED HOKE HOKED HOOCH HOOD HOODED HOODIE HOODOO HOODOOED HOOK
HOOKED HUH IBEX ICE ICEBOX ICED ICH ICK ID IODIC IODID IODIDE IXODID KEBBIE
KEBBOCK KEBOB KECK KECKED KEEK KEEKED KEX KHI KIBBE KIBBEH KIBBI KIBE KIBEI KICK
 KICKED KID KIDDED KIDDIE KIDDO KIKE KOB KOBO KOI KOODOO KOOK KOOKIE MIM MM MOM
MUM nu OBE OBI OBOE OD ODD ODE ODIC OE OH OHED OHO OHO OHO OKE OKEH OOH OOHED
OTTO OX ox OXID OXIDE OXIDIC OXO oxo OXO oxo OXO oxo pod pood SIS solos SOS sos
suns TAT TIT TOOT TOT TUT un VAV WAW WOW wow X x X x X x XEBEC XI YAY

Sorry about the mixture of types--the original output was color coded for the type.

The beginning of the program shows the letter matching used:

' cap horiz
DATA aa, hh, ii, mm, oo, tt, uu, vv, ww, xx, yy
' lc horiz
DATA bd, db, ll, oo, pq, qp, vv, ww, xx
' cap vert
DATA bb, cc, dd, ee, hh, ii, kk, oo, xx
' lc vert
DATA cc, oo, xx
' cap rot
DATA hh, ii, oo, ss, xx, zz
' lc rot
DATA bq, dp, ll, nu, oo, pd, qb, ss, un, xx, zz

DIM capHoriz$(11)
FOR i = 1 TO 11: READ capHoriz$(i): PRINT capHoriz$(i); : NEXT: PRINT

DIM lcHoriz$(9)
FOR i = 1 TO 9: READ lcHoriz$(i): PRINT lcHoriz$(i); : NEXT: PRINT

DIM capVert$(9)
FOR i = 1 TO 9: READ capVert$(i): PRINT capVert$(i); : NEXT: PRINT

DIM lcVert$(3)
FOR i = 1 TO 3: READ lcVert$(i): PRINT lcVert$(i); : NEXT: PRINT

DIM capRot$(6)
FOR i = 1 TO 6: READ capRot$(i): PRINT capRot$(i); : NEXT: PRINT

DIM lcRot$(11)
FOR i = 1 TO 11: READ lcRot$(i): PRINT lcRot$(i); : NEXT: PRINT

OPEN "words.txt" FOR INPUT AS #1
DO
  COLOR 7
  LINE INPUT #1, w$
  'cap horiz
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 11
     IF LEFT$(capHoriz$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = RIGHT$(capHoriz$(j), 1) + w1$
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT UCASE$(w$); " ";
  END IF
 
  'lc horiz
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 9
     IF LEFT$(lcHoriz$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = RIGHT$(lcHoriz$(j), 1) + w1$
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT w$; " ";
  END IF

  COLOR 9
  'cap vert
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 9
     IF LEFT$(capVert$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = w1$ + RIGHT$(capVert$(j), 1)
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT UCASE$(w$); " ";
  END IF

  'lc vert
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 3
     IF LEFT$(lcVert$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = w1$ + RIGHT$(lcVert$(j), 1)
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT w$; " ";
  END IF

  COLOR 14
  'cap Rot
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 6
     IF LEFT$(capRot$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = RIGHT$(capRot$(j), 1) + w1$
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT UCASE$(w$); " ";
  END IF

  'lc Rot
  good = 1
  w1$ = ""
  FOR i = 1 TO LEN(w$)
   found = 0
   FOR j = 1 TO 11
     IF LEFT$(lcRot$(j), 1) = MID$(w$, i, 1) THEN
      found = 1
      w1$ = RIGHT$(lcRot$(j), 1) + w1$
     END IF
   NEXT
   IF found = 0 THEN good = 0: EXIT FOR
  NEXT
  IF good AND w$ = w1$ THEN
   PRINT w$; " ";
  END IF
LOOP UNTIL EOF(1)
CLOSE

 


  Posted by Charlie on 2004-05-21 09:48:38
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (2)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2017 by Animus Pactum Consulting. All rights reserved. Privacy Information