LabVIEWForum.de
Brauche Hilfe bei einer Stringsuche - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Brauche Hilfe bei einer Stringsuche (/Thread-Brauche-Hilfe-bei-einer-Stringsuche)



Brauche Hilfe bei einer Stringsuche - HansWerner - 17.07.2010 21:54

Gegeben ist ein String mit n Zeichen z.B. 26 Stück.
Nun soll geprüft werden ob jedes Zeichen, hier z.B. von A..Z nur ein einziges Mal vorkommt.
Die Reihenfolge ist egal, ist eine Permutation (Vertauschung).
Kein Zeichen soll fehlen und keines mehrfach vorkommen.
Also der Eingabestring soll irgendwie gegenüber einem Alphabet wie z.B. A..Z (Stringkonstante ?) geprüft werden.
Welche VIs nehmen wir denn da (Teil-String, In-String-suchen) ?


Brauche Hilfe bei einer Stringsuche - IchSelbst - 17.07.2010 23:04

' schrieb:Welche VIs nehmen wir denn da (Teil-String, In-String-suchen) ?
StringNachBytearray, InArraySuchen, ArrayInitialisieren, ArraywertInkrementieren etc. etc.

Oder dieses.

Lv86_img


Brauche Hilfe bei einer Stringsuche - SeBa - 18.07.2010 01:02

In OpenG gibts ne Funktion um Duplicates ausm Array zu entfernen... wenn dann weniger drin sind, hat halt was gefehltWink


Gruß SeBa


Brauche Hilfe bei einer Stringsuche - HansWerner - 18.07.2010 01:34

Hallo IchSelbst,

erstmal vielen Dank für deine Mühen.

Ich habe dein Beispiel ausprobiert.
Funktioniert leider nicht.

Es soll festgestellt werden ob eine Zeichenkette eine Permutation einer anderen ist.
Wenn ich als erlaubte Zeichen "AVGHTZ" und als Teststring "AHTZGVI" eingebe, meldet das Programm keinen Fehler.
"I" war in diesem Fall nicht erlaubt.
Könnte man natürlich zusätzlich durch die Länge der Zeichenkette erschlagen.
Wenn a) Kein Zeichen fehlt und b) Kein Zeichen mehrfach vorhanden ist und c) Die Zeichenketten gleich lang sind,
dann ist die eine Zeichenkette eine Permutation der anderen.
Oder beide Zeichenketten in ein Array wandeln, die Grösse der Arrays vergleichen, dann sortieren und anschliessend Zeichen
für Zeichen miteinander vergleichen. Etwas suboptimal.


Brauche Hilfe bei einer Stringsuche - IchSelbst - 18.07.2010 09:30

' schrieb:Ich habe dein Beispiel ausprobiert.
Funktioniert leider nicht.
Ach, wie wär's denn mit fertig programmieren?

Ich kann programmieren. Ich hab das schriftlich. Ich muss nicht mehr. Yahoo

Zitat:"I" war in diesem Fall nicht erlaubt.
Wenn Summe des Rests vom Arrays > 0, dann kommt ein Zeichen unerlaubtes Zeichen vor.

Zitat:Könnte man natürlich zusätzlich durch die Länge der Zeichenkette erschlagen.
Nicht nötig.

Zitat:a) Kein Zeichen fehlt
Wenn also das Produkt des einen Arrays genau 1 ist
Zitat:b) Kein Zeichen mehrfach vorhanden ist
Geht automatisch mit a). Ist das Produkt 0, fehlt ein Zeichen. Ist das Produkt > 1, ist eines mehr als einmal vorhanden.
Zitat:Die Zeichenketten gleich lang sind,
Die Summe des Rests ist Null.

Zitat:dann ist die eine Zeichenkette eine Permutation der anderen.
Beide Bedingungen müssen gleichzeitig erfüllt sein.


Brauche Hilfe bei einer Stringsuche - Lucki - 18.07.2010 13:29

' schrieb:Oder beide Zeichenketten in ein Array wandeln, die Grösse der Arrays vergleichen, dann sortieren und anschliessend Zeichen
für Zeichen miteinander vergleichen. Etwas suboptimal.
Wieso suboptimal? Normalerweise ist die einfachste Löung die beste. Suboptimal ist es dann, wenn jemand eine noch einfachere Lösung vorlegt
[attachment=27942]
Lv86_img[attachment=27943]

Edit: und wenn sich beim Vergleicshmuster um die Zeichen A..Z handelt, dann kann man es so vereinfachen und man könnte direkt mit Strings arbeiten:
[attachment=27945]
[attachment=27944]


Brauche Hilfe bei einer Stringsuche - HansWerner - 18.07.2010 16:27

Danke Lucki,

habe ich wieder was gelernt.
Das "Denken" in LabView fällt verflucht schwer.
Da sind mir normale zeilenorienterte Programmiersprachen doch lieber.


Brauche Hilfe bei einer Stringsuche - Lucki - 19.07.2010 06:52

' schrieb:habe ich wieder was gelernt.
...
Da sind mir normale zeilenorienterte Programmiersprachen doch lieber.
Dann habe ich leider versagt, ich wollte natürlich nicht, daß das Ergebnis dieses Lernen die Abwendung von Labview ist.
Aber ich kann Dich verstehen. Labview spielt seine große Stärke bei der Messwerterfassung und -Auswertung aus, nicht umsonst wurden in Zusammenhang mit Labview Begriffe wie "virtuelles Instrument" und "Der PC ist das Messinstrument" geprägt. Bei solchen Aufgaben wie der von Dir hier gestellten hat Labview hingegen keinerlei Vorteile gegenüber anderen, textorientierten Sprachen, und sich deswegen extra in LV einzuarbeiten lohnt sich wirklich nicht.


Brauche Hilfe bei einer Stringsuche - SeBa - 19.07.2010 09:53

Da ich ja einfach das OpenG in den Raum gestellt habe, hab ich beim Frühstücken mal was zusammengeklickt...

Unter der Annahme, dass die Permutation vom Benutzer eingegeben wird... wenn nicht, kann man ja die Textspielerein weglassen.

Lv09_img2[attachment=27955]
[attachment=27956]

[attachment=27957][attachment=27958][attachment=27959]

Gruß SeBa