สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าสตริงนี้เป็นไปตามรูปแบบ a^n b^n หรือไม่ นี่คือสตริงที่เมื่อ n = 3 สตริงจะเป็น "aaabbb"
เช่น ถ้าอินพุตเป็น s = "aaaaabbbbb" ผลลัพธ์จะเป็น True เนื่องจากเป็นไปตาม a^5 b^5
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- size := ขนาดของ s
- สำหรับ i ในช่วง 0 ถึง size - 1 ทำ
- ถ้า s[i] ไม่เท่ากับ 'a' แล้ว
- ออกจากลูป
- ถ้า s[i] ไม่เท่ากับ 'a' แล้ว
- ถ้า i * 2 ไม่เท่ากับ size แล้ว
- คืนค่า False
- สำหรับ j ในช่วง i ถึง size - 1 ทำ
- ถ้า s[j] ไม่เท่ากับ 'b' แล้ว
- คืนค่า False
- ถ้า s[j] ไม่เท่ากับ 'b' แล้ว
- คืนค่า True
ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:
ตัวอย่าง
def solve(s):
size = len(s)
for i in range(size):
if s[i] != 'a':
break
if i * 2 != size:
return False
for j in range(i, size):
if s[j] != 'b':
return False
return True
s = "aaaaabbbbb"
print(solve(s))
อินพุต
"aaaaabbbbb"
ผลลัพธ์
True