Úlohy na procvičení

Funkce pro textové řetězce

  1. Napište funkci contains, která pro zadaný text text a znak char zjistí, jestli text obsahuje znak char.
    Ručně napište cyklus, který bude procházet přes znaky textu, nepoužívejte operátor in (pokud ho znáte).

    >>> contains("banana", "n")
    True
    >>> contains("banana", "z")
    False
  2. Napište funkci count, která pro zadaný text text a znak char spočítá, kolikrát se znak char vyskytuje v textu.
    Nepoužívejte metodu str.count ze standardní knihovny.

    >>> count("banana", "n")
    2
  3. Napište funkci find, která pro zadaný text text a znak char zjistí, na jaké pozici se znak char poprvé vyskytuje v textu. Pokud se char v textu nevyskytuje, vraťte -1.
    Nepoužívejte metodu str.find ani str.index ze standardní knihovny.

    >>> find("banana", "b")
    0
    >>> find("banana", "n")
    2
    >>> find("banana", "z")
    -1

Keř a Strom

Cvičení na seznamy

Je dán seznam čísel…

  1. zjistěte, jestli jsou všechna navzájem různá.
  2. vypište všechna opakující se čísla (ale každé jen jednou).
  3. najděte dvojici s co nejmenším rozdílem.

Jaká je časová složitost vašich řešení (vzhledem k počtu čísel)? Umíte předchozí úkoly vyřešit efektivněji, pokud víte, ze všechna zadaná čísla leží od \(1\) do \(100\)?

Transpozice matice

Napište kód pro transpozici matice (matice je seznam seznamů čísel). Začněte pomocí for cyklů. Jestli jste odvážní, zkuste to zapsat jako list comprehension (přesněji dvě list comprehensions v sobě).

>>> matrix = [[1, 2, 3, 4], [4, 5, 6, 8]]
>>> transpose(matrix)
[[1, 4], [2, 5], [3, 6], [4, 8]]

Učební výstupy

Učební výstupy podávají zhuštěný souhrn základních konceptů a dovedností, které byste měli umět vysvětlit a/nebo použít po každém cvičení. Hvězdičkou (⭐) je označena látka nad rámec předmětu Programování 1, kterou tedy teď nemusíte umět, ale někdy v budoucnu se vám může hodit.