MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: position of letters in a string


Zak, Here is one way to assign a number to a letter in string based on
your criterion:

UnsortedUnion[x_]:=Module[{f},f[y_]:=(f[y]=Sequence[];y);f/@x]
Map[MapIndexed[Rule[#1,First[#2]]&,UnsortedUnion[Characters[#]]]&,lst]

{{"c" -> 1, "a" -> 2, "t" -> 3, "z" -> 4},
{"z" -> 1, "r" -> 2, "t" -> 3, "y" -> 4, "s" -> 5}}

Note you cannot assign a string varable a value but if you want the
string "catz" be represented   by "1234" and  zrtys by "12345" you can
use

(StringJoin[StringReplace[UnsortedUnion[Characters[#1]],
MapIndexed[#1 -> ToString[First[#2]] & ,
UnsortedUnion[Characters[#1]]]]] & ) /@ lst

{"1234", "12345"}


Cheers,

Brian
zak wrote:
> in the list of strings:
> lst={"catcatz","zrzttys"}
> i want some procedure to give the letters in every string a number
> depending on its position and discarding the recurrent letters such
> that:
> first string: c=1;  a=2;  t=3; z=4
> second string: z=1;  r=2;  t=3;  y=4;  s=5
> zak


  • Prev by Date: Re: Nonlinear Curve Fitting
  • Next by Date: Re: position of letters in a string
  • Previous by thread: Re: position of letters in a string
  • Next by thread: Re: position of letters in a string