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

Bagaimanakah Kita Boleh Mengira Kejadian Substring Bertindih dengan Cekap dalam Python?

Patricia Arquette
Lepaskan: 2024-12-15 11:27:16
asal
414 orang telah melayarinya

How Can We Efficiently Count Overlapping Substring Occurrences in Python?

Mengira Kejadian Rentetan Bertindih Dengan Berkesan

Mengenal pasti bilangan kejadian subrentetan dalam rentetan boleh menjadi rumit, terutamanya apabila pertindihan dibenarkan. Perpustakaan seperti rentetan Python menyediakan kaedah terbina dalam seperti 'kira' untuk tujuan ini, tetapi mereka tidak menganggap kejadian bertindih.

Pengiraan Aksara Bertindih

Pertimbangkan pendekatan berikut :

def overlapping_count(string, substring):
    count = 0
    for i in range(len(string) - len(substring) + 1):
        if string[i:i+len(substring)] == substring:
            count += 1
    return count
Salin selepas log masuk

Di sini, fungsi itu berulang melalui rentetan, memeriksa subrentetan panjang yang ditentukan dan menambah kiraan apabila perlawanan ditemui. Kaedah ini mudah tetapi boleh menjadi agak perlahan untuk rentetan yang besar.

Pengoptimuman Berpotensi

Atas sebab prestasi, adalah berbaloi untuk meneroka pendekatan berbeza yang melibatkan penggunaan keupayaan Cython:

import cython

@cython.boundscheck(False)
def faster_occurrences(string, substring):
    cdef int count = 0
    cdef int start = 0
    while True:
        start = string.find(substring, start) + 1
        if start > 0:
            count += 1
        else:
            return count
Salin selepas log masuk

Dengan Cython, kami boleh memanfaatkan pengisytiharan jenis statik dan kompilasi Just-In-Time (JIT) untuk meningkatkan prestasi dengan melangkau pemeriksaan jenis dan pengoptimuman yang tidak perlu untuk kod Python. Fungsi yang dioptimumkan ini seharusnya jauh lebih pantas untuk set data yang lebih besar.

Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mengira Kejadian Substring 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan