Wieviel verschiede Strings in einem Vektor?
-
Hi,
ich bin gerade dabei die Interpolationssuche zu programmieren jetzt stehe ich vor dem Problem wie ich errechnen kann wie viele verschieden Strings es gibt.Meine Annahme ist das die Strings gerecht verteilt sind. Deswegen würde ich im ersten Schritt erstmal den ersten und letzten String voneinander abziehen.
Nur wie kann ich das machen? Mit "-" gehts leider nicht. Hat jemand ne Idee?
vielen Dank
wdsl
-
Hä?
-
wdsl schrieb:
Hi,
ich bin gerade dabei die Interpolationssuche zu programmieren jetzt stehe ich vor dem Problem wie ich errechnen kann wie viele verschieden Strings es gibt.Die Liste aller Strings sortieren, per unique() Duplikate herausfischen und anschließend durchzählen - so würde ich das Problem angehen.
(alternativ speicherst du alle vorkommenden Strings in einer set<>, die kümmert sich selber um die Sortierung und die Behandlung von Duplikaten)
-
Also ich versuchs nochmal. Ich brauch das leider so da es vorgabe ist.
Ich habe eine Sortierte Liste von zufälligen Strings. Wenn ich jetzt 5 Zahlen hätte wäre es leicht.
2,5,6,8,9
Dann würde ich die 2 von der 9 abziehen also 7 durch 5 (Anzahl Elemente) teilen hätte 1,4
Das wäre die Durchschnittssteigung der Werte.
Jetzt ist mein Problem wie bekomme ich das mit Strings gebacken. Also
a,c,e,g,h
wie kann ich das a vom h abziehen. Das müsste ja irgendwie gehen?
mfg
wdsl
-
Was stellst du dir denn unter der Differenz zweier Strings vor?
-
Was sollte denn deiner Meinung nach herauskommen, wenn du zwei Strings subtrahierst oder einen String durch eine Zahl dividierst? Solche Operationen sind aus gutem Grund für Strings nicht definiert, weil sie ganz einfach keinen Sinn machen würden.
(selbst die Definition von "+" als String-Verkettung wird hier teilweise als fragwürdig angesehen)
-
hmm eben die Ascii-Werte oder so wobei das nicht geht da die Strings unterschiedlich lang sein können. Hat jemand vielleicht ein Beispiel von einer Interpolationsearch Umsetzung für Strings?
vielen Dank
wdsl
-
Du könntest höchstens Hash-Werte für die beteiligten Strings bilden und dann auf Grundlage dieser Hash-Werte suchen. Oder du verwendest jeweils die ersten i Zeichen bzw. das i-te Zeichen (i wird von 1 an langsam erhöht) der Strings als Zahl im 256er System (läuft auch auf eine Art von Hash hinaus).