Portuguese, Brazilian subtitles

← 02ps-12 Find Last Solution

02ps-12 find_last - Solução

Get Embed Code
6 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. O problema pede que você defina uma função,
  2. chamada find_last, que tem 2 parâmetros:
  3. uma string na qual vamos fazer a pesquisa e uma string que queremos encontrar.
  4. O objetivo da função é
  5. encontrar a posição da última ocorrência de t.
  6. Então, vamos usar uma variável, chamada last_pos.
  7. O plano global é:
  8. enquanto encontrarmos ocorrências de t,
  9. continuamos chamando a função find,
  10. atualizando o ponto inicial da pesquisa.
  11. Então vamos fazer isso: while True: --
  12. e, como ainda não sabemos quando queremos terminar,
  13. vamos atualizar a posição
  14. usando a função find,
  15. onde pesquisamos por t,
  16. mas iniciando a partir de last_+1.
  17. O +1 é importante, para que
  18. não continuemos sempre encontrando a mesma string, indefinidamente.
  19. Se isso retorna -1,
  20. isso significa que não encontramos nenhuma outra ocorrência de t.
  21. Então, queremos retornar a posição da ocorrência encontrada previamente,
  22. que armazenamos em last_pos.
  23. Caso contrário, queremos atualizar last_pos,
  24. como a posição que acabamos de encontrar.
  25. Então, está faltando apenas uma coisa: com que valor devemos iniciar last_pos?
  26. Se nunca encontrarmos nenhuma ocorrência de t em s,
  27. queremos retornar -1.
  28. Então, se a posição for -1
  29. na primeira iteração, podemos simplesmente retornar last_pos.
  30. Então, faz sentido iniciar last_pos com -1.