Avatar billede ladyhawke Novice
14. august 2002 - 14:25 Der er 4 kommentarer og
1 løsning

Parentes match

Jeg har en CString hvor jeg skal matche parenteser efter en bestemt position, det vil sige at når jeg finde et match til førstkommende "(" er strengen OK

Er der nogen gode ideer til en simpel algoritme her?
Avatar billede soepro Nybegynder
14. august 2002 - 15:03 #1
Mener du checke at der er lige mange højre og venstre parenteser ?

int pos, count;

count = 0;
for (pos = 0; pos < str.Length; pos++)
{
  if (str.Mid(pos,1) == '(')
    count++;
  else
    if (str.Mid(pos,1) == ')')
      count--;
} // for
if (count != 0)
  FEJL !
Avatar billede ladyhawke Novice
14. august 2002 - 15:08 #2
ikke nød vendig vis jeg skal bare finde en matchende højre parentes, f.eks.:

Streng:  blah( PmytextB( (...) (...) M))mere text()

Min udgangsposition er P og søgningen skal stoppe når parentesen efter B er matchet med parentesen efter M...

Håber det gør sagen mere klar
Avatar billede ladyhawke Novice
14. august 2002 - 15:10 #3
Der kan godt være u-matchede parenteser i strengen, som skal ignores når bare der er en match som angivet ovenfor...
Avatar billede ladyhawke Novice
14. august 2002 - 16:05 #4
Duh! Det kan selvfølgelig bruges, tak for hjælpen :o)
Avatar billede soepro Nybegynder
15. august 2002 - 11:12 #5
Ladyhawke >> Hvis du kun søger match på yderste niveau, så skal count bare være >= 0. (Hvis den er negativ, er der flere højre end venstre parenteser.)
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