สมมติว่าเรามีสตริง S (ตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก) เราต้องหาจำนวนสตริงย่อยทั้งหมดที่มีความยาวสี่อักขระที่สามารถจัดเรียงอักขระใหม่เพื่อสร้างคำนี้ได้ "นก".
ดังนั้น หากอินพุตเป็นเหมือน "birdb" ผลลัพธ์จะเป็น 2
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
cnt :=0
-
สำหรับฉันในช่วง 0 ถึงขนาด s - 3 ทำ
-
bird :=อาร์เรย์ที่มี [0, 0, 0, 0]
-
สำหรับ j ในช่วง i ถึง i + 4 ทำ
-
ถ้า s[j] เหมือนกับ 'b' แล้ว
-
นก[0] :=นก[0] + 1
-
-
มิฉะนั้นเมื่อ s[j] เหมือนกับ 'i' แล้ว
-
นก[1] :=นก[1] + 1
-
-
มิฉะนั้นเมื่อ s[j] เหมือนกับ 'r' แล้ว
-
นก[2] :=นก[2] + 1
-
-
มิฉะนั้นเมื่อ s[j] เหมือนกับ 'd' แล้ว
-
นก[3] :=นก[3] + 1
-
-
ถ้านกเหมือนกับ [1,1,1,1] แล้ว
-
cnt :=cnt + 1
-
-
-
-
ส่งคืน cnt
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def number_of_occurrence(s): cnt = 0 for i in range(0, 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