упр.01 задача 3

Предадени решения

Краен срок:
15.10.2025 23:59
Точки:
1

Срокът за предаване на решения е отминал

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(check_password(""), false);
assert_eq!(check_password("abcdedfg"), false);
assert_eq!(check_password("a11b22c33d44"), false);
assert_eq!(check_password("A1234abcd"), false);
assert_eq!(check_password("1234ABCD"), false);
assert_eq!(check_password("ABCD1234"), true);
assert_eq!(check_password("Abcd1234"), true);
assert_eq!(check_password("A123bcd4"), true);
}

Напишете функция

fn check_password(pass: &str) -> bool {
    // ваш код
}

Паролата е валидна, ако:

  • е дълга поне 8 символа
  • започва с главна буква
  • завършва с цифра

Забележки:

  • функцията е нужно да работи само за ascii символи - в случая няма да тестваме с unicode
  • може да използвате pass.as_bytes(), за да конвертиране низа до масив от байтове (&[u8]) и да итерирате или индексирате по това
  • алтернативно може да използвате pass.chars().next().unwrap() и pass.chars().last().unwrap(). Това използва итератор по символи и друг път ще обясним как точно работи.

П.С. игнорирайте линка с указания за домашни - добавя се автоматично и не е актуален в случая.

Задължително прочетете (или си припомнете): Указания за предаване на домашни

Погрижете се решението ви да се компилира с базовия тест:

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(check_password(""), false);
assert_eq!(check_password("abcdedfg"), false);
assert_eq!(check_password("a11b22c33d44"), false);
assert_eq!(check_password("A1234abcd"), false);
assert_eq!(check_password("1234ABCD"), false);
assert_eq!(check_password("ABCD1234"), true);
assert_eq!(check_password("Abcd1234"), true);
assert_eq!(check_password("A123bcd4"), true);
}