Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

นับสตริงย่อยที่จัดเรียงตัวอักษรได้เป็นคำที่กำหนดใน Python

สมมติว่าเรามีสตริง S (ตัวพิมพ์เล็ก) ต้องการนับสตริงย่อยยาว 4 ตัวอักษร ที่จัดเรียงตัวอักษรแล้วได้คำว่า "bird"

เช่น "birdb" ผลลัพธ์คือ 2 (สตริงย่อย "bird" และ "irdb")

ขั้นตอนการแก้ปัญหา

  1. วนลูป i จาก 0 ถึง len(s)-4
  2. นับตัวอักษร b, i, r, d ในสตริงย่อย 4 ตัวอักษร
  3. ถ้ามีครบ 1 ตัวแต่ละตัว เพิ่มนับ

ตัวอย่างโค้ด Python

def number_of_occurrence(s):
    cnt = 0
    for i in range(len(s) - 3):
        bird = [0, 0, 0, 0]
        for j in range(i, i + 4):
            if s[j] == 'b':
                bird[0] += 1
            elif s[j] == 'i':
                bird[1] += 1
            elif s[j] == 'r':
                bird[2] += 1
            elif s[j] == 'd':
                bird[3] += 1
        if bird == [1, 1, 1, 1]:
            cnt += 1
    return cnt

s = "birdb"
print(number_of_occurrence(s))

อินพุต

"birdb"

เอาต์พุต

2