สมมติว่าเรามีสตริงตัวพิมพ์เล็กสองตัว s และ t บางครั้ง เมื่อเราพิมพ์สระ คีย์อาจถูกกดค้างไว้ และสระจะถูกทำซ้ำ 1 ครั้งขึ้นไป เราต้องตรวจสอบว่าเป็นไปได้ไหมที่ t จะเป็นตัวระบุ s หรือไม่
ดังนั้น หากอินพุตเป็นเหมือน s ="mine" t ="miiine" ผลลัพธ์จะเป็น True เนื่องจากสระ 'i' ซ้ำ 3 ครั้ง ตัวอักษรอื่นๆ ก็ใช้ได้
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- s_len :=ขนาดของ s
- t_len :=ขนาดของเสื้อ
- j :=0
- สำหรับฉันในช่วง 0 ถึง s_len - 1 ทำ
- ถ้า s[i] ไม่เหมือนกับ t[j] แล้ว
- คืนค่าเท็จ
- ถ้า s[i] ไม่ใช่เสียงสระ ดังนั้น
- j :=j + 1
- ติดตามตอนต่อไป
- cnt_1 :=1
- ในขณะที่ i
- cnt_1 :=cnt_1 + 1
- ผม :=ผม + 1
- ถ้า s[i] ไม่เหมือนกับ t[j] แล้ว
- cnt_2 :=1
- ในขณะที่ j
- cnt_2 :=cnt_2 + 1
- j :=j + 1
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def isVowel(c): vowel = "aeiou" return c in vowel def solve(s, t): s_len = len(s) t_len = len(t) j = 0 for i in range(s_len): if s[i] != t[j]: return False if isVowel(s[i]) == False: j = j + 1 continue cnt_1 = 1 while i < s_len - 1 and (s[i] == s[i + 1]): cnt_1 = cnt_1 + 1 i = i + 1 cnt_2 = 1 while j < t_len - 1 and t[j] == s[i]: cnt_2 = cnt_2 + 1 j = j + 1 if cnt_1 > cnt_2: return False return True s = "mine" t = "miiine" print(solve(s, t))
อินพุต
"mine", "miiine"
ผลลัพธ์
True