[Tutor] String manipulation: Pig latin translator

Dave Angel davea at ieee.org
Sun Jul 12 14:43:04 CEST 2009


Eddie wrote:
> Hi guys,
>
> What I have here is more of a logic problem that I can't get my head around
> than a programming problem. I am trying to program an English to Pig Latin
> translator. I've got the English to Pig Latin part down and its working
> great.
>
> The part I am having difficulty with is the Pig Latin to English part.
> Say I have the word ellohay (hello) which I wish to convert into English.
> The first thing I am doing is removing the added ay at the end and the new
> word becomes elloh.
>
> This is where I have the problem. I have to somehow identify which letters
> to remove from the end and add back to the front of the word (i.e. h needs
> to be removed and added back to the front). However with a word such as
> string which translates as ingstray, when we remove the ay we are left with
> ingstr, and need to identify that str needs to be removed and added back on
> the front.
>
> I am lost as to how to identify which characters need to be removed to be
> re-added to the front and can't find a common rule to program by. There are
> translators out there already like this, so it works somehow, I just need a
> push in the right direction i think [image: :)]
>
> Thanks
>
>   
You can't find an algorithm, because there isn't one.  Pig-latin 
conversion is a non-reversible transformation.  I suspect what existing 
implementations do is to have a dictionary of legal words.  Then the 
algorithm
might become:
       while word ends with consonant,
               move consonant to beginning
              if word is in dictionary, break




More information about the Tutor mailing list