Wenn ich meine Finger zufällig über die Tasten einer Schreibmaschine gleiten lasse, kann es passieren,
dass im so entstehenden Wälzer ein lesbarer Satz vorkommt. Wenn eine Armee von Affen auf ihre Schreibmaschinen
einklimpert, dann können sie alle im British Museum enthaltenen Bücher schreiben. Die Wahrscheinlichkeit,
dass sie dies tun, liegt deutlich höher als die Wahrscheinlichkeit, dass sich in einem Behälter alle Moleküle
in einer Hälfte sammeln.
Sir Arthur Stanley Eddington: The Nature of the Physical World: The Gifford Lectures; Macmillan, New York 1928,
Seite 72 (frei zitiert nach Übersetzung...
Nehmen wir einmal an unsere Affen tippen, tippen und tippen und haben eine Vielzahl von kurzen Textsegmenten
produziert.
Lass uns versuchen, sie für nach sinnvollen Wort Einschlüssen zu durchsuchen.
Gegeben wird ein Text, der möglicherweise verständliche Worte enthält. Du sollst zählen, wie viele Wörter in dem
gegebenen Text enthalten sind.
Ein Wort sollte ganz sein und kann ein Teil des anderen Wortes sein. Gross-/Kleinschreibung spielt keine Rolle.
Die Wörter werden in Kleinbuchstaben vorgegeben und wiederholen sich nicht. Wenn ein Wort mehrmals im Text
erscheint, sollte es nur einmal gezählt werden.
Zum Beispiel:
text - "How aresjfhdskfhskd you?", words - ("how", "are", "you", "hello").
Das Ergebnis wäre 3.
Eingabe: Zwei Argumente.
Ein Text als String (unicode für Python 2) und Worte als Set von Strings (unicode für Python 2).
Ausgabe: Die Anzahl der im Text gefundenen Worte als Integer.
Beispiele:
countWords("How aresjfhdskfhskd you?", ["how", "are", "you", "hello"]) == 3
countWords("Bananas, give me bananas!!!", ["banana", "bananas"]) == 2
countWords("Lorem ipsum dolor sit amet, consectetuer adipiscing elit.",
["sum", "hamlet", "infinity", "anything"]) == 1
Wozu das gut ist:
Python ist eine nützliche und leistungsfähige Sprache für die Textverarbeitung .
Diese Mission ist nur ein einfaches Beispiel für die Art von Textsuche Werkzeugen, die man entwickeln kann.
Bedingungen:
0 < len(text) ≤ 256
all(3 ≤ len(w) and w.islower() and w.isalpha for w in words)