สมมติว่าเรามีสตริง s และอีกตัวอักษรหนึ่ง c เราต้องตรวจสอบว่าตัวอักษร c ปรากฏอยู่ติดกันใน s ทุกครั้งหรือไม่ ถ้าตัวอักษร c ไม่อยู่ใน s ให้คืนค่า true เช่นกัน
เช่น ถ้าอินพุตเป็น s = "bbbbaaaaaaaccddd", c = 'a' ผลลัพธ์จะเป็น True
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- flag := False
- index := 0
- n := ขนาดของสตริง
- while index < n ทำ
- ถ้า string[index] เท่ากับ c แล้ว
- ถ้า flag เป็น True แล้ว
- คืนค่า False
- while index < n และ string[index] เท่ากับ c ทำ
- index := index + 1
- flag := True
- ถ้า flag เป็น True แล้ว
- มิฉะนั้น
- index := index + 1
- ถ้า string[index] เท่ากับ c แล้ว
- คืนค่า True
ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:
ตัวอย่าง
def solve(string, c):
flag = False
index = 0
n = len(string)
while index < n:
if string[index] == c:
if (flag == True):
return False
while index < n and string[index] == c:
index += 1
flag = True
else:
index += 1
return True
s = "bbbbaaaaaaaccddd"
c = 'a'
print(solve(s, c))
อินพุต
"bbbbaaaaaaaccddd", "a"
ผลลัพธ์
True