Inverter uma STRING, tecnicamente impossível

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • 📚 Livro para entender estruturas de dados e algoritmos: amzn.to/4bYu4VE

Комментарии • 28

  • @lucasdepaula9744
    @lucasdepaula9744 6 месяцев назад +34

    Acho q o problema é q eles tentam generalizar as questões para todas as linguagens. Geralmente uma string é um array de caracteres.

  • @russotragik
    @russotragik 6 месяцев назад +30

    E eu pensando:
    "Ué, mas é só passar a string como ponteiro, o final dela sempre será 0x00, independente do tamanho da string, dá para...AHH, PYTHON"

  • @heraldo623
    @heraldo623 6 месяцев назад +1

    Strings são imutáveis devido a codificação dos caracteres (charset). A alteração arbitrária dos bytes de uma string quebraria essa codificação em charsets mais complexos como o UTF.
    Uma string no Python usa UTF8 por padrão.

  • @otavioalves813
    @otavioalves813 4 месяца назад

    Seu canal é bom demais, bicho

  • @c0nsp739
    @c0nsp739 6 месяцев назад +2

    Eu já tinha assistido dois vídeos ao longo dessa semana e tudo bem. Mas quando eu me vejo só olhando quem fez o vídeo e clicando, eu acho que já é o momento de se inscrever ksks.

  • @stringsquebec
    @stringsquebec 6 месяцев назад

    kkkkk man esse cara é muito inteligente slc. estou estudando python e valeu pelos videos.

  • @lucasflores82
    @lucasflores82 6 месяцев назад +1

    Maneirão o vídeo, gostaria de aprender a fazer esses truques sem destruir a memória do computador 😅

  • @nium-xp
    @nium-xp 6 месяцев назад +8

    É possível fazer alteração ""in-place"" numa `str` em Python sem precisar alocar um novo espaço de memória, basta usar o protocolo "buffer"

    • @sudogive--mecoffee6942
      @sudogive--mecoffee6942 6 месяцев назад +4

      Brother, o que vc acha que é um buffer?

    • @0GuguH9
      @0GuguH9 6 месяцев назад +1

      Buffer é um espaço na memória...

    • @nium-xp
      @nium-xp 6 месяцев назад +1

      Do nada decidiram falar apenas de buffer, na minha mensagem está "protocolo buffer" e não apenas "buffer" (o que pode ser encaixado até em matemática...), no caso da minha mensagem me refiro ao "Python protocol buffer" do "Python Data Models"

    • @0GuguH9
      @0GuguH9 6 месяцев назад

      @@nium-xp Eu não sei python, porém buffer é um espaço na memória temporário, e pelo nome, da a entender que é um protocolo que usa buffers

    • @heraldo623
      @heraldo623 6 месяцев назад

      Buffer é uma lista de bytes. Sting em python é imutável, o buffer cria uma cópia.

  • @gabrielcastro4813
    @gabrielcastro4813 6 месяцев назад

    Tecnicamente uma string é um array de chars

  • @GustavoStephano
    @GustavoStephano 3 месяца назад

    Acabei de bombar em um teste por causa disso... juro que precisei vir correndo pra ver isso porque apanhei feio...
    Valeu demais, Augusto! Vou estudar bastante sobre isso e outros conteúdos de leetcode seu, já me ajudaram muito!
    Edit: Acabei achando um mano na gringa que explica como fazer isso de uma forma um pouco mais complexa, que era exatamente o caso que bombei. Caso queiram estudar sobre, se apeguem ao que o Augusto ensinou e o que esse cara tem a ensinar:
    ruclips.net/video/u4BoxfwBsyU/видео.html

  • @GustavoHenrique-ch5rn
    @GustavoHenrique-ch5rn 6 месяцев назад +1

    E se usasse print(s[::-1]) ? O que tem de errado?

    • @janpalach2443
      @janpalach2443 6 месяцев назад +1

      Vc estaria gerando uma cópia da string e não alterando in place como o problema pede. Vc estaria alocando memória tão grande quanto N no final.

  • @pokeppg
    @pokeppg 6 месяцев назад

    Não bastaria fazer [::-1] para inverter a string?

    • @Dz6k
      @Dz6k 6 месяцев назад +6

      ele nao quer apenas inverter, envolve tbm alocacao de memoria

  • @danysinchro
    @danysinchro 6 месяцев назад +2

    Se você inicializa e muta 2 variáveis você não está alocando espaço em memória? Digo, além do espaço da string/array.

    • @Tomagu_
      @Tomagu_ 6 месяцев назад

      eu tava pensando nisso também

    • @kauefelipemullersoares2544
      @kauefelipemullersoares2544 6 месяцев назад +3

      mas isso é constante, para qualquer tamanho do array, a quantidade de memória usada é a mesma

    • @raf8052
      @raf8052 6 месяцев назад

      O problema diz que a memória alocada não pode depender do tamanho da string, então nesse caso ele poderia alocar até 1GB de espaço e não importaria, desde que isso fosse constante pra qualquer tamanho de string

    • @lucasv5404
      @lucasv5404 6 месяцев назад +1

      A solução tem que ser O(1) em relação a entrada do programa. O que isso siginifica? Significa que deve utilizar o mesmo espaço em memória independente do tamanho da entrada. Ou seja, resolver o problema para uma "string" de 5 chars gas o mesmo espaço em memória de resolver o problema para uma string de 1M de chars.
      O(1) só significa que o espaço em memória usado para a solução independe do tamanho da entrada.

    • @Set_Abominae
      @Set_Abominae 5 месяцев назад

      Vc aloca 2 variáveis, só que sempre são 2 variáveis independente se a "string" tem 10 caracteres ou 50000 caracteres... Por isso não tem problema, pq não depende do tamanho da string. Continua sendo O(1) e não O(n).

  • @contasfinalcontasfinal
    @contasfinalcontasfinal 6 месяцев назад +10

    Voz gostosa da porra