Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengira Kejadian Rentetan Bertindih dengan Cekap dalam Python?

Bagaimanakah Saya Boleh Mengira Kejadian Rentetan Bertindih dengan Cekap dalam Python?

DDD
Lepaskan: 2024-12-24 20:06:16
asal
755 orang telah melayarinya

How Can I Efficiently Count Overlapping String Occurrences in Python?

Pengiraan Kejadian Rentetan Bertindih dalam Python

Apabila mengira kejadian rentetan, mengabaikan pertindihan boleh membawa kepada hasil yang salah. Satu pendekatan biasa ialah mengulung aksara rentetan mengikut aksara, tetapi ini boleh menjadi tidak cekap untuk rentetan yang lebih besar.

Adakah Terdapat Cara yang Lebih Baik?

Ya, ada penyelesaian yang lebih cekap menggunakan kaedah find(), yang beroperasi dalam C. Inilah yang ditambah baik kod:

def occurrences(string, sub):
    count = start = 0
    while True:
        start = string.find(sub, start) + 1
        if start > 0:
            count+=1
        else:
            return count
Salin selepas log masuk

Cara ia Berfungsi

  • Kaedah string.find() mencari kejadian pertama sub bermula dari kedudukan mula dalam rentetan .
  • Gelung berterusan sehingga tiada lagi kejadian ditemui.
  • Kedudukan mula ditambah dengan satu selepas setiap kejadian untuk menyemak pertindihan.

Contoh Penggunaan

Sebagai contoh, mengira kejadian "11" dalam rentetan "1011101111" menggunakan ini kaedah akan menghasilkan keputusan yang sama iaitu 5, tetapi dengan kecekapan yang dipertingkatkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Rentetan Bertindih dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan