https://leetcode.com/problems/detect-capital/description Easy

Условие

Дана строка, состоящая из букв английского алфавита. Требуется проверить, используется ли регистр букв корректно. Корректное использование регистра — это когда:

• Все буквы в строке заглавные, например, "USA".

• Все буквы в строке строчные, например, "leetcode".

• Только первая буква заглавная, а остальные строчные, например, "Google".

Вернуть true, если строка использует регистр корректно, и false в противном случае.

Примеры

Input: word = "USA” Output: true

Input: word = "FlaG” Output: false

Решение

fun detectCapitalUse(word: String): Boolean {
    // Проверяем, если все символы заглавные
    if (word == word.toUpperCase()) return true

    // Проверяем, если все символы строчные
    if (word == word.toLowerCase()) return true

    // Проверяем, если только первый символ заглавный, а остальные строчные
    if (word[0].isUpperCase() && word.substring(1) == word.substring(1).toLowerCase()) return true

    // В остальных случаях регистр используется некорректно
    return false
}

Временная сложность

O(n) — Проходим по строке несколько раз для проверки условий, где n — длина строки.

Пространственная сложность

O(1) — Используем постоянное количество памяти, не зависящее от длины строки.