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
DDDasal
2024-12-24 20:06:16727semak imbas

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

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!

Kenyataan:
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