Avatar billede askhoej Praktikant
31. juli 2001 - 10:57 Der er 9 kommentarer og
1 løsning

Sammenligning af strenge


Jeg har mangler en funktion der kan finde afvigelsen mellem to strenge, hvor afvigelsen udtrykkes som et tal. Tror måske det er noget med Knuth\'s algoritme.

Er der en, der har et eksempel liggende på det?
Avatar billede nuno Nybegynder
31. juli 2001 - 13:49 #1
<%
Dim sA, sB, intDiff, i, maxLen

sA = \"test\"
sB = \"testt\"
intDiff = 0

if len(sA) > len(sB) then
    maxLen = len(sA)
else
    maxLen = len(sB)
end if


for i = 1 to maxLen
    response.write \"<br>\" & i & \"<br>\"
    \'vælg den største af strengene til at gennemløbe
    if maxLen = len(sA) then
        response.write \"1. mulighed valgt\"
        if mid(sA,i,1) <> mid(sB,i,1) then
            intDiff = intDiff + 1
            response.write \" Position \" & i & \" Der blev fundet en forskel -> intDiff + 1\"
        end if   
    elseif maxLen = len(sB) then
        response.write \"2. mulighed valgt\"
        if mid(sB,i,1) <> mid(sA,i,1) then
            intDiff = intDiff + 1
            response.write \" Position \" & i & \" Der blev fundet en forskel -> intDiff + 1\"
        end if
    end if
next



response.write \"<br>intDiff ialt = \" & intDiff
%>


---------

så får du i hvert fald forskellen i antallet af positioner i strengene hvor der er forskel.

Jeg kender ikke lige Knuth\'s algoritme pr. navn - så jeg skal have lidt mere info hvis det er helt ved siden af det jeg poster her.


/nuno
Avatar billede chrcalif Nybegynder
31. juli 2001 - 16:39 #2
that is just great
Avatar billede nuno Nybegynder
31. juli 2001 - 17:11 #3
chrcalif> øøh - hvordan skal den forstås?
Avatar billede chrcalif Nybegynder
31. juli 2001 - 17:24 #4
den skal ik forståes
Avatar billede askhoej Praktikant
31. juli 2001 - 17:56 #5
Hej nuno

Algoritmen jeg referer til hedder: Knuth-Morris-Pratt algoritm - den skulle sammenligne to strenge og finde afvigelsen som et tal. Dette tal angiver, hvor mange &#8221;tegnoperationer&#8221; systemet skal udføre, for at ændre den første streng til den anden.

Håber du forstår :-)
Avatar billede askhoej Praktikant
31. juli 2001 - 17:56 #6
det skulle stå:

...hvor mange \"tegnoperationer\" systemet...
Avatar billede chrcalif Nybegynder
31. juli 2001 - 18:00 #7
whatever
Avatar billede nuno Nybegynder
01. august 2001 - 08:57 #8
askhoej> ok - den er jeg aldrig stødt ind i - kan dog godt følge princippet i den. Well - det script jeg har bikset sammen - det sammenligner \"kun\" på hver enkelt position - og giver et tal for, på hvor mange positioner der er forskel på strengene.

Avatar billede oswald Nybegynder
01. august 2001 - 09:47 #9
Hvis du vil have den ÆGTE vare så gå til Hr. Knuth\'s hjemmeside hvor har faktisk har mange små programmer liggende. Jeg ved ikke om han har det du kikker efter, men hvis han har så skriv lige en link til siden ;).

http://www-cs-faculty.stanford.edu/~knuth/programs.html
Avatar billede askhoej Praktikant
06. maj 2002 - 22:48 #10
lukker spg. fandt en helt anden løsning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester