Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 12.09.2018, 18:30 Titel: Programmtips erbeten |
|
|
Hi!
Ich erzeuge alphanumerische Zeichenketten gleicher Länge. Gehn wir davon aus dass es viele und lange Ketten sind. Die sollen gespeichert werden. Nun soll aber eine Zeichenkette nicht zweimal erscheinen.[Ein beliebiges Zeichen soll nicht vorkommen.]
Meine Fragen dazu:
-Gibt es eine Standardroutine um solche Aufgaben zu erledigen?
- Muß ich zur Duoplikatprüfung jedes Zeichen einzeln 'ausschneiden' und mit allen bereits vorhandenen vergleichen? Oder gibt's da eine Abkürzung?
-Wann prüfe ich auf Duplikat? Sofort nach dem Erzeugen oder nach Speichern aller Ketten? (Was geht schneller?)
[Wie schließe ich eine bzw. mehrere Zeichen von der Beteiligung an Ketten am sinnvollsten aus?]
Freue mich von Euch zu hören
grüsse _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4687 Wohnort: ~/
|
Verfasst am: 12.09.2018, 19:43 Titel: |
|
|
Ich verstehe im Moment das hier nicht so recht:
Zitat: | Nun soll aber eine Zeichenkette nicht zweimal erscheinen.[Ein beliebiges Zeichen soll nicht vorkommen.] |
Keine Kette soll komplett identisch sein mit einer der anderen Ketten? Oder ein Zeichen, das in einer Kette vorkam, soll in keiner der anderen Ketten vorkommen? Oder was genau ist hier gemeint?
Wenn einfach nur die komplette Kette nicht doppelt vorkommen soll, würde ich beim Erzeugen die neue Kette mit allen bisherigen Ketten vergleichen. Am effektivsten wäre es vermutlich (bei sehr vielen langen Ketten), die Ketten gleich als Bäume zu speichern und zu sortieren (alle Ketten, die mit "a", "b", "c" ... beginnen; Untersortierung nach dem zweiten Zeichen usw.) Das müsste sich mithilfe von Listen ganz gut machen lassen, eine fertige Struktur kenne ich dazu in FreeBASIC allerdings nicht. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1276 Wohnort: Ruhrpott
|
Verfasst am: 12.09.2018, 20:06 Titel: |
|
|
nemored hat Folgendes geschrieben: | Das müsste sich mithilfe von Listen ganz gut machen lassen, eine fertige Struktur kenne ich dazu in FreeBASIC allerdings nicht. | Dafür wäre doch die Baumstruktur aus dem Wortzähler gut geeignet, mit dem wir uns hier vor einigen Jahren mal die Zeit vertrieben haben. Dort kann man auch die Menge der erlaubten Zeichen und sogar deren Reihenfolge individuell festlegen. Und schnell ist des Ganze auch noch.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
|