Herausforderung
Ich bin sicher, Sie haben den Titel gelesen und sind hereingekommen, um Ihren Repräsentanten zu bewirtschaften. Sie müssen sich im kürzesten Code gegenseitig herausfordern, um das Auftreten einer Zeichenfolge in einer anderen zu zählen. Zum Beispiel bei folgender Eingabe:
aaaabbbbsssffhd
als Zeichenfolge und die Zeichenfolge
s
sollte ausgeben
3
Regeln
Kurz bevor Sie lächeln und sagen: "Hey, ich werde ---- verwenden", lesen Sie Folgendes:
- Keine Verwendung externer Bibliotheken oder der API Ihrer Sprache. Sie müssen es manuell implementieren. Dies bedeutet, dass Sie die integrierte Funktion oder Methode Ihrer Sprache nicht zum Zählen von Vorkommen verwenden können
- Keine Datei-E / A.
- Keine Verbindung mit einem Server, einer Website usw.
- In einem Fall von "abeba", wo es mit "aba" beginnt und wenn Sie die letzten 3 Buchstaben lesen, ist es auch "aba", zählen Sie nur einen *
Danke @ProgramFOX dafür (die letzte Regel)!
* Hinweis : Wenn Sie Vorkommen zählen, können Sie diejenigen entfernen, die Sie gezählt haben, um zu vermeiden, dass diese Regel missachtet wird
Ich denke, die letzten 2 Regeln sind nur für Regelbieger!
Gewinnkriterium
Wie bereits erwähnt, ist der Gewinner der Code mit den weniger verwendeten Bytes. Der Gewinner wird fünf Tage später (15. Juni 2014) bekannt gegeben.
Meine kleine Antwort
Hier ist meine C ++ - Antwort, in der davon ausgegangen wird, dass die liVariable die Zeichenfolge zum Überprüfen von Vorkommen enthält und ldie Zeichenfolge ist, nach der gesucht werden muss f:
Ungolfed
int c = 0;
while (li.find(lf) != string::npos)
{
int p = li.find(lf);
int l = p + lf.length() - 1;
for (p = p; p <= l; p++)
{
li[p] = static_cast<char>(8);
}
++c;
}
Um zu verwenden std::string, müssen Sie natürlich die String-Header-Datei einschließen!
Golf gespielt
int c=0;while(li.find(lf)!=string::npos){int p=li.find(lf);int l=p+lf.length()-1;for(p=p;p<=l;p++){li[p]=static_cast<char>(8);}++c;}
Ergebnis
Die Variable cgibt an, wie oft die Zeichenfolge gefunden wurde
Genießen!
Gewinner
Nach langem Warten gewinnt die @ Tennis- Antwort mit nur 3 Bytes, geschrieben in GolfScript
smit Matching umgehen ? Wenn nicht: Ich habe eine 5- +/a=b
ababaund istaba, sollten wir ausgeben1oder2? Der dritteaist sowohl das Ende des erstenabaals auch der Anfang des zweitenaba.