Search
Write a publication
Pull to refresh
0
0

Пользователь

Send message

может тест неплохо было бы приложить? а то непонятно что он выдает на выходе

похоже код в конце не рабочий, попробовал (ради любопытства) в одном из Swift Online Compiler - куча ошибок выдает. Это же Swift?

import Foundation


    let vbs = Array("(()(()())...())")
    let n = vbs.count / 2

    var array = Array(repeating: Array(repeating: 0, count: n + 1), count: n + 1)
    if n > 0 {
        array[1][1] = 1
    }
    
    for i in 2...n {
        array[i][1] = array[i - 1][i - 1]
        for j in 2...i {
            array[i][j] = array[i][1] + array[i][j - 1] - (j > 1 && i > 1 ? array[i - 1][j - 2] : 0)
        }
    }

    var inserts = Array(repeating: 0, count: n)
    var k = 0
    var j = max(n - 1, 0)
    
    for i in 0..<(2 * n) {
        if vbs[i] == "(" {
            k += 1
        } else {
            k -= 1
            if j < n {
                inserts[j] = k
            }
            j = max(j - 1, 0)
        }
    }

    var m = 0
    for i in (1...n).reversed() {
        let ii = inserts[i - 1]
        if ii > 0 && (ii - 1) < array[i - 1].count {
            m += array[i][ii] - array[i - 1][ii - 1]
        }
    }
    
    print(array[n][n] - (m + 1))

что значит "кусочков"? посмотрите внимательно на Erlang/Elixir, там полностью все модули всего проекта (сервиса) могут быть обновлены без разрыва соединения текущих клиентов и без остановки работы и полностью прозрачно для пользователя. Если упрощенно то все текущие подключения остаются на старом коде (по-умолчанию, если специально не запрограммированна альтернативная логика), а новые включаются на обновленную версию... это касается и всяких серверов с web-socket'ами и интеркоммуникации процессов, и сессий и т.д.
Где-то была очень крутая и подробная презентация в YT, но её сейчас не найду - поэтому дам такой линк 'Elixir Distributed Node Clustering with Raft Consensus in ExVenture' (https://www.youtube.com/watch?v=rxFlKhWzthw). А вообще можно нагуглить на тему 'hot code reload' и 'libcluster' и т.д.
Конечно универсальных 'пуль' не бывает, но у Erlang/Elixir ,как мне кажется, максимально были налажены процессы безшовного обновления кода даже в кластерах, причем из коробки и начиная с самых ранних версий ( это было обязательное требование дизайна системы с начала разработки языка).

есть и давно, называется Erlang - hot code reload гарантирован без останова и отключения текущих клиентов

запустил финальный скрипт (Ubuntu 20.04 Python 3.11.1) просто ради интереса - не работает оно, если бы я предварительно вызовы "os." не закомментировал, то удалило бы мне далеко не пустые дирректории вот в том месте где logger.info('Empty dir %s was removed')

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity