Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Удалить смайлики вида ":-)))" и ":- ((" из сообщения
- func removeSmiles(_ str: inout [Character]) {
- var l = 0
- var r = 0
- while r < str.count {
- while r + 2 < str.count
- && str[r] == ":"
- && str[r + 1] == "-"
- && (str[r + 2] == ")" || str[r + 2] == "(") {
- // прыгаем к элементу после полноценного смайла (либо за пределы списка)
- r += 3
- // смторим сколько скобок еще есть
- while r < str.count && str[r] == str[r - 1] {
- r += 1
- }
- }
- // для провеки когда к в самом конце вышел за пределы
- if r < str.count {
- str[l] = str[r]
- l += 1
- }
- r += 1
- }
- // <l так как на последный итерации (перезаписи) l шагает вперед
- str = Array(str[0..<l])
- }
- var a = Array("Aa :-)+(())")
- removeSmiles(&a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement