Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MARK: - Удаление лишних пробелов, при этом запятые должны быть приклеены к словам
- // когда мы записываем на место l, мы l двигаем
- // если текущий - не пробел, то пишем на место l
- // если предидущий записанный символ - пробел, то текущий пробел не записываем
- func collapseSpacesBasic(_ string: inout String) {
- var str = Array(string).map{String($0)}
- var r = 0
- var l = 0
- var isPreviousSpace = true
- while r < str.count {
- if str[r] == " " {
- if isPreviousSpace == false {
- str[l] = str[r]
- l += 1
- isPreviousSpace = true
- }
- } else {
- str[l] = str[r]
- l += 1
- isPreviousSpace = false
- }
- r += 1
- }
- print(str[0..<l])
- string = str[0..<l].joined()
- }
- var inputString = " Привет rerwerwewr werwer "
- collapseSpacesBasic(&inputString)
- print(inputString)
- // MARK: - запятые теперь будудут приклеиваться к словам даже если они были отделены пробелами
- func collapseSpacesPro(_ str: inout String) {
- var chars = Array(str)
- var l = 0
- var r = 0
- let set: Set<Character> = [",", ":", "!", "?", "."]
- var isPreviousSpace = true
- while r < chars.count {
- let char = chars[r]
- if char == " " {
- if isPreviousSpace == false {
- chars[l] = char
- l += 1
- isPreviousSpace = true
- }
- } else if set.contains(char) {
- chars[l-1] = char
- isPreviousSpace = false
- } else {
- chars[l] = char
- l += 1
- isPreviousSpace = false
- }
- r += 1
- }
- chars = Array(chars[0..<l])
- str = String(chars)
- print(chars)
- }
- var inputStringPro = " Привет rerwerwewr , werwer, ! . "
- collapseSpacesPro(&inputStringPro)
- print(inputStringPro)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement