There are some English words that can be partitioned into two strings of letters, say A & B (each part should have more than one letter) in a way that both AB and BA are valid words.
Examples:
Inch>>chin; mode>>demo; upset>>setup & outlook>>lookout. Let’s call them ABBA words.
Compile a list of all 4-letter ABBA pairs of words.
What is the longest ABBA word you have found?
Provide at least one example in another language.
Remarks: all words, including proper names, slang, plurals etc are accepted as long as they can be found in respectable dictionaries. Esoteric words should have proper explanation
A complete list from my word list is:
(Any pair is listed only once, with the lexicographically earlier word listed first.)
abacas casaba
ablest stable
adits tsadi
admen menad
adore oread
alan anal
alba baal
albas basal
alchemic chemical
algor goral
alibi biali
allocation locational
allover overall
alloy loyal
alme meal
alpine pineal
altars tarsal
alvine vineal
angle glean
angst stang
ankh khan
anna naan
arced cedar
arch char
ardeb debar
arse sear
arson sonar
artal talar
arts tsar
ascent centas
aside ideas
aspic picas
asquint quintas
assignor signoras
atabal balata
atman manat
babka kabab
backfire fireback
backout outback
backset setback
backswing wingbacks
barde debar
barre rebar
basis isbas
basketwork workbasket
bedim imbed
bedlam lambed
bema mabe
birdsong songbird
bloodshot hotbloods
blowfly flyblow
boathouse houseboat
bolo lobo
bonefish fishbone
bookcase casebook
bootjack jackboot
bowel elbow
boxwood woodbox
braze zebra
breakout outbreak
bucksaw sawbuck
buildup upbuild
burnout outburn
buyout outbuy
calo loca
cares escar
carses escars
casein incase
castoff offcast
cedi dice
centre recent
cesta taces
chares eschar
chili lichi
chin inch
chit itch
coattail tailcoat
code deco
codling lingcod
comedown downcome
congas gascon
cookout outcook
cosec secco
costa tacos
cotes escot
coverslip slipcover
cutline linecut
cutoff offcut
cutover overcut
daywork workday
demo mode
demon monde
deni nide
dentin indent
dere rede
dogwatch watchdog
door ordo
dore redo
downplay playdown
downturn turndown
dropout outdrop
duper perdu
dyed eddy
edge geed
eeliest steelie
else seel
emit item
englut gluten
enlist listen
enows owsen
enrich richen
ensheath heathens
ergo goer
errant ranter
erring ringer
ervil viler
espy pyes
estop topes
estrin trines
etapes peseta
fallout outfall
fantail tailfan
ferlie liefer
floodwater waterflood
flyover overfly
foin info
formalin informal
fortepiano pianoforte
frypan panfry
galere regale
gallnut nutgall
german manger
grownup upgrown
guesthouse houseguest
gunshot shotgun
hadji jihad
handoff offhand
handover overhand
hangover overhang
headlong longhead
headpin pinhead
headspring springhead
hemic miche
herein inhere
hermit mither
hillside sidehill
holdover overhold
holdup uphold
hometown townhome
horserace racehorse
hotspots potshots
housemother motherhouse
housework workhouse
hungover overhung
huntsman manhunts
ilka kail
ingraft rafting
ingrain raining
ingroup rouping
insculp sculpin
insole oleins
inspect pectins
isle leis
jayvee veejay
karma makar
kata taka
kepi pike
keto toke
kingpin pinking
late tela
lave vela
layout outlay
layover overlay
legate telega
leva vale
levo vole
linkup uplink
litre relit
lookout outlook
lyre rely
lysing singly
mane nema
mano noma
manpack packman
mastership shipmaster
mateship shipmate
memo mome
meno nome
mense semen
mentally tallymen
mesa same
meta tame
metre remet
mise semi
missal salmis
mitre remit
mosh shmo
mythy thymy
navar varna
nave vena
nester ternes
nevi vine
oast stoa
offset setoff
onset seton
onto toon
ottar tarot
otto toot
outpitch pitchout
outpull pullout
output putout
outread readout
outroll rollout
outrun runout
outsell sellout
outset setout
outshoot shootout
outsprint printouts
outstand standout
outtake takeout
outturn turnout
outwalk walkout
outwash washout
outwatch watchout
outwork workout
overpass passover
overrun runover
oversleep sleepover
overslip slipover
overspill spillover
overstrike strikeover
overswing wingovers
overtake takeover
overturn turnover
ownership shipowner
palpi pipal
parsec secpar
pasta tapas
paste tepas
pate tepa
peckerwood woodpecker
pedro roped
pepo pope
peri ripe
pesto stope
pesto topes
pesty types
piecework workpiece
pileup uppile
pintails tailspin
pore repo
prisere reprise
questor torques
ragtag tagrag
raise serai
rase sera
raster terras
rater terra
rato tora
rave vera
reenter terreen
respect spectre
rifest strife
rinse serin
ripest stripe
riptide tiderip
ritter territ
rota taro
roti tiro
roto toro
rowth throw
ruth thru
salver versal
scaleup upscale
selves vessel
sendup upsend
server verser
setup upset
sever verse
sidestream streamside
sidetrack trackside
sideway wayside
siestas tassies
sitar tarsi
slate tesla
standup upstand
startup upstart
state testa
stave vesta
steeve vestee
tactic tictac
takeup uptake
tates testa
tossup uptoss
turnup upturn
upwind windup
woodworm wormwood
Of the above, the 4-letter ones were:
alan anal
alba baal
alme meal
ankh khan
anna naan
arch char
arse sear
arts tsar
bema mabe
bolo lobo
calo loca
cedi dice
chin inch
chit itch
code deco
demo mode
deni nide
dere rede
door ordo
dore redo
dyed eddy
edge geed
else seel
emit item
ergo goer
espy pyes
foin info
ilka kail
isle leis
kata taka
kepi pike
keto toke
late tela
lave vela
leva vale
levo vole
lyre rely
mane nema
mano noma
memo mome
meno nome
mesa same
meta tame
mise semi
mosh shmo
nave vena
nevi vine
oast stoa
onto toon
otto toot
pate tepa
pepo pope
peri ripe
pore repo
rase sera
rato tora
rave vera
rota taro
roti tiro
roto toro
ruth thru
The largest pair is housemother, motherhouse, but the list below shows all that include 10-letter words as well as this pair of 11-letter words:
allocation locational
basketwork workbasket
floodwater waterflood
fortepiano pianoforte
guesthouse houseguest
headspring springhead
housemother motherhouse
mastership shipmaster
overstrike strikeover
peckerwood woodpecker
sidestream streamside
clc, clearvars
fid=fopen("c:\words\words.txt","r");
while ~feof(fid)
w=fgetl(fid);
if length(w)>=4 && isequal(lower(w),w)
for i=3:length(w)-1
w1=[w(i:end) w(1:i-1)];
if string(w)<string(w1)
if isword(w1)
disp([w ' ' w1])
end
end
end
end
end
fclose(fid);
function iw=isword(x)
ws=string(x);
xl=length(x);
fn=['c:\words\words' num2str(xl) '.txt'];
words=fileread(fn);
nwords=length(words)/xl;
first=1; last=nwords;
while first<=last
mid=floor((first+last)/2);
word=string(words(xl*(mid-1)+1:xl*mid));
if word==ws
break
end
if word>ws
last=mid-1;
end
if word<ws
first=mid+1;
end
end
if word==ws
iw=true;
else
iw=false;
end
end
|
Posted by Charlie
on 2021-12-07 10:41:14 |