Tantangan
Saya yakin Anda membaca judulnya, dan datang ke peternakan perwakilan Anda, memikirkan hal-hal anak-anaknya, tetapi pikirkan lagi! Anda harus saling menantang dalam kode terpendek untuk menghitung kemunculan string di string lain. Misalnya, diberi input berikut:
aaaabbbbsssffhd
sebagai string, dan string
s
harus keluar
3
Aturan
Tepat sebelum Anda tersenyum dan berkata, "Hei, saya akan menggunakan ----," baca ini:
- Tidak menggunakan perpustakaan eksternal, atau API bahasa Anda. Anda harus mengimplementasikannya secara manual. Yang berarti Anda tidak dapat menggunakan fungsi atau metode bawaan bahasa Anda untuk menghitung kejadian
- Tidak ada file I / O
- Tidak terhubung dengan server, situs web, dan lain-lain
- Dalam kasus `ababa`, yang dimulai dengan` aba` dan jika Anda membaca 3 huruf terakhir itu juga `aba`, Anda hanya menghitung satu *
Terima kasih @ProgramFOX untuk itu (aturan terakhir)!
* Petunjuk : Saat menghitung kejadian, Anda dapat menghapus yang Anda hitung untuk menghindari pelanggaran aturan ini
Saya pikir 2 aturan terakhir hanya untuk pembengkok aturan!
Kriteria Kemenangan
Seperti yang dinyatakan sebelumnya, pemenangnya adalah kode dengan byte yang lebih sedikit digunakan. Pemenang akan diumumkan lima hari kemudian (15 Juni 2014)
Jawaban Kecil Saya
Inilah jawaban C ++ saya, yang mengasumsikan bahwa livariabel tersebut menyimpan string untuk memeriksa kejadian, dan lmerupakan string yang harus dicari f:
Tidak disatukan
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;
}
Tentu saja, untuk menggunakan std::string, Anda harus memasukkan file header string!
Golf
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;}
Hasil
Variabel cakan menjadi nilai berapa kali string ditemukan
Nikmati!
Pemenang
Setelah menunggu lama, jawaban @Dennis menang hanya dengan 3 byte, ditulis dalam GolfScript
suntuk pencocokan? Jika tidak: Saya punya solusi J 5 Char:+/a=b
ababadanaba, haruskah kita output1atau2? Yang ketigaaadalah akhir dari yang pertamaabadan awal dari yang keduaaba.