On Sun, 6 May 2001 17:07:34 +0200, "Daniel Pino Maldera"
<dmaldera@hotmail.com> wrote:
>Hvis i har set min post "hjælp til hashtable..." så står der nogenlunde hvad
>mit problem er.
>Jeg har besluttet mig for at lave en HashTable hvor den hvert bogstav i en
>tekststreng skal have sit eget index. Men kan jeg bare skrive:
>
>HashTable ht = New HashTable (protein);
1) hvis du læste op på hvordan en hashtable fungerer i java, så har du
langt bedre mulighed for at se om det er noget du kan bruge (det var
bare lidt 'flame' over at du ikke selv undersøger sagen før end du
spørger)
>hvor "protein" er navnet på min teksstreng, den består af 250 tegn, alle
>sammenhængende. Altså ikke selvstændige strings.
Dvs:
String protein="ABCD..HH"; // 250 tegn
>Når det er gjort skal jeg tildele en værdi til hver af disse index,
Jeg tror du misforstår hashtable - der er ikke index i hashtables.
Men altså (for at jeg forstår det ret), hvert tegn i 'protein',
tildeles en sekvens af 3 små bogstaver (acgt)?
Eller med andre ord, du skal for hver entydig forekomst af de 250 tegn
tildele et sæt af tre-bogstavs sekvenser, lidt a:
A={'cgt','agt','cta'}
B={'cat','tac'}
:
:
Z={...}
og så skal du checke om et element i A ikke forekommer i B..Z, og
elementer i B ikke forekommer i A,C..Z osv?
Hvis dette er korrekt, så kan en løsning være:
Hashtable ht = new Hashtable;
for hver element 'A', med et sæt 'xyz', gør:
// check om sættet 'xyz' tilhører 'A'
if( ht.get('xyz')==null ){
// sættet fandtes ikke
// gem sættet
ht.put('xys','A'); // sættet bliver brugt af A
}else if( ht.get('xyz')!='A'{
// sættet bliver brugt af et andet element end A
// derfor fejl!
}else{
// sættet bliver brugt af 'A' i forvejen, og så er det ok!
}
Da entries i hashtable har en unik værdi, så kan du bruge dine 'sæt'
som entries, da de kun kan have et unikt element.
>bestående af 3 små bogstaver (a,c,g eller t). Jeg forestiller mig ca.
>følgende:
>
>ht.put("H","gct");
>
>Til sidst vil jeg tjekke om samme følge af 3 små bogstaver bliver refereret
>til af samme index.
Det finder du ud af under indsætning af elementerne.
Hvis du vil vente til bagefter, kan du istedet for at indsætte
elementet, indsætte en vector som har de elementer der bliver bruger
sættene, og så bagefter løbe din hashtables vectorer igennem, og se om
der er vectorer der har en størrelse større end 1.
>Den er jeg i tvivl om hvordan skal laves.
>
>Alle forslag er velkomne.
Håber du kan bruge det. Hvis ikke du får andre forslag, er det nok
fordi din problemstilling ikke er helt tydelig
>Jeg har tidligere fået et forslag om at bruge suffix tree, men det vil jeg
>ikke følge, da jeg ved det kan laves med HashTable.
Hvorfor spørger du så?
>Venligst DPM
>
vh. ld
--
"Time is the fire in which we burn"